error-page
错误响应的整个主体:状态码、一句实话、一条回头的路,以及管理员用得上的 500 参考编号。
404 — 找不到
<div rst-error>
<p rst-error-status>404</p>
<h1 rst-error-title>找不到该页面</h1>
<p rst-error-body>链接可能已过期,或者页面已移动。请检查网址,或回到起始页面。</p>
<p rst-error-cta><a rst-btn="primary" href="/">起始页面</a></p>
</div>
403 — 无权限
<div rst-error>
<p rst-error-status>403</p>
<h1 rst-error-title>你没有权限查看这个页面</h1>
<p rst-error-body>你的账户在这里没有访问权限。如果你认为应该有,请联系管理这个网站的人。</p>
<p rst-error-cta><a rst-btn="primary" href="/">起始页面</a> <a rst-btn href="/posts">返回</a></p>
</div>
422 — 无法处理
<div rst-error>
<p rst-error-status>422</p>
<h1 rst-error-title>提交未成功</h1>
<p rst-error-body>发送的内容中有些地方不正确。请返回重试;没有保存任何内容。</p>
<p rst-error-cta><a rst-btn="primary" href="/">起始页面</a> <a rst-btn href="/posts/1/edit">返回</a></p>
</div>
500 — 服务器错误
<div rst-error>
<p rst-error-status>500</p>
<h1 rst-error-title>我们这边出了问题</h1>
<p rst-error-body>这不是你的问题。问题已记录。请稍后重试;如果一直发生,请提供下方的参考编号。</p>
<p rst-error-cta><a rst-btn="primary" href="/">起始页面</a></p>
<p class="rst-mono" rst-error-ref dir="auto">参考编号:k3f9tq</p>
</div>
500 是唯一带参考编号的状态:运维人员可以用它在日志里 grep。
503 — 暂时不可用
<div rst-error>
<p rst-error-status>503</p>
<h1 rst-error-title>我们暂时无法提供服务</h1>
<p rst-error-body>网站正在更新或者比较繁忙。请过一分钟再试。</p>
<p rst-error-cta><a rst-btn="primary" href="/">起始页面</a></p>
</div>
其他任何情况——通用的一对
<div rst-error>
<p rst-error-status>418</p>
<h1 rst-error-title>有些地方不对</h1>
<p rst-error-body>该请求无法完成。请返回重试。</p>
<p rst-error-cta><a rst-btn="primary" href="/">起始页面</a></p>
</div>
框架目录里写了五种状态的措辞。第六种会回退到通用的一对,而不是把一个缺失的键名摆到读者眼前。