bigfork / silverstripe-fail-whale
SilverStripe 错误页面,但没有页面。
2.0.0
2023-03-08 15:01 UTC
Requires
Requires (Dev)
- phpunit/phpunit: ^9.5
README
SilverStripe 错误页面,但没有页面。
这是什么?
可由CMS编辑的错误页面(404、500等),不会占用网站树结构,也不会让不经常(如果有的话)编辑这些页面的内容作者感到困惑。即使没有安装CMS模块也能使用。
它如何工作?
错误文档是可以通过CMS的“设置”区域进行编辑的数据对象。没有版本控制或草稿/实时阶段,所以所有更改都会立即发布。遇到错误时,SilverStripe会寻找匹配的错误文档并在找到后渲染它。
缓存内容仍然存储在 assets/error-<code>.html
文件中,如果需要,仍然可以使用自定义模板。
当安装CMS模块时,在渲染错误文档之前会调用 PageController::init()
,以确保包含所有必要的要求。如果在错误发生时需要在此方法中实现不同的行为,可以检查 if ($this->data()->ClassName === ErrorDocument::class)
。
如何使用自定义模板?
例如,在404错误的情况下,该模块将寻找以下模板
<theme>/templates/Bigfork/SilverStripeFailWhale/Model/Layout/ErrorDocument_404.ss
<theme>/templates/Bigfork/SilverStripeFailWhale/Model/Layout/ErrorDocument.ss
<theme>/templates/Bigfork/SilverStripeFailWhale/Model/ErrorDocument.ss
如果以上模板都不存在,并且已安装CMS模块,则模块将回退到使用默认的 Page
模板。
这个名字的由来是什么?
“Fail Whale” 是由澳大利亚艺术家 Yiying Lu 绘制的白色白鲸插图,最初被命名为 “Lifting a Dreamer”,它被社交媒体服务Twitter在服务中断期间使用。
感谢 @andrewandante 提出建议!