php - 如何更改 Symfony 4 中的默认树枝错误模板?
问题描述
我正在使用 Symfony 4.4 构建一个应用程序。我正在尝试呈现自定义 404 错误页面。我遵循文档并在模板/捆绑包/TwigBundle/Exception 中创建了 error.html.twig 和 error404.html.twig 文件。但是我仍然得到'哎呀!“发生错误”,代码为 500 页面,默认情况下来自 symfony。有人能指出我做错了什么吗?在开发模式下,我看到应用程序抛出 NotFoundHttpException,但在生产模式下,即使我访问未定义的路由,我也总是得到代码为 500 的页面。这是我访问 undefiend 路由时得到的: 500 错误
解决方案
您可以使用内置的 Twig 错误渲染器来覆盖默认的错误模板。需要为此安装 TwigBundle 和 TwigBridge 当错误页面加载时,Symfony\Bridge\Twig\ErrorRenderer\TwigErrorRenderer 用于渲染 Twig 模板以显示给用户。
此渲染器使用 HTTP 状态代码和以下逻辑来确定模板文件名:
查找给定状态代码的模板(如 error500.html.twig);如果先前的模板不存在,则丢弃状态代码并查找通用错误模板 (error.html.twig)。要覆盖这些模板,请依靠标准 Symfony 方法来覆盖存在于包中的模板并将它们放在 templates/bundles/TwigBundle/Exception/ 目录中。
推荐阅读
- android - 如何在android studio的回收器适配器中处理多次点击事件
- javascript - 如何为 recaptcha v3 编写单元测试
- vue.js - Vuetify Nuxt.js:如何在轮播图标中添加路由链接
- c - 使用C查找第n项总和的递归函数
- vue.js - 在 vue 表单向导中的选项卡更改事件之前调用 Ajax 函数
- android - RecyclerView 在执行操作后加载,而不是在片段加载时加载
- javascript - 我在 vue watch 中有一个带有两个参数的方法,其中一个不会更改
- r - 如何在 R 中反转 data.frame 或 data.table 的行
- javascript - 如何选择具有文本值的匿名 HTML 元素?
- r - ShinydashBoard 呈现的 tabItem 未正确显示