首页 > 解决方案 > 如何更改 Symfony 4 中的默认树枝错误模板?

问题描述

我正在使用 Symfony 4.4 构建一个应用程序。我正在尝试呈现自定义 404 错误页面。我遵循文档并在模板/捆绑包/TwigBundle/Exception 中创建了 error.html.twig 和 error404.html.twig 文件。但是我仍然得到'哎呀!“发生错误”,代码为 500 页面,默认情况下来自 symfony。有人能指出我做错了什么吗?在开发模式下,我看到应用程序抛出 NotFoundHttpException,但在生产模式下,即使我访问未定义的路由,我也总是得到代码为 500 的页面。这是我访问 undefiend 路由时得到的: 500 错误

标签: phpsymfonytwig

解决方案


您可以使用内置的 Twig 错误渲染器来覆盖默认的错误模板。需要为此安装 TwigBundle 和 TwigBridge 当错误页面加载时,Symfony\Bridge\Twig\ErrorRenderer\TwigErrorRenderer 用于渲染 Twig 模板以显示给用户。

此渲染器使用 HTTP 状态代码和以下逻辑来确定模板文件名:

查找给定状态代码的模板(如 error500.html.twig);如果先前的模板不存在,则丢弃状态代码并查找通用错误模板 (error.html.twig)。要覆盖这些模板,请依靠标准 Symfony 方法来覆盖存在于包中的模板并将它们放在 templates/bundles/TwigBundle/Exception/ 目录中。


推荐阅读