Symfony 4.4 - 自定义错误模板不起作用

Posted

技术标签:

【中文标题】Symfony 4.4 - 自定义错误模板不起作用【英文标题】:Symfony 4.4 - Custom Error Templates Not Working 【发布时间】:2021-04-27 06:32:05 【问题描述】:

我在 Symfony 4.4 Flex 中使用自定义错误模板时遇到了问题。根据https://symfony.com/doc/4.4/controller/error_pages.html的指南,一切都已正确设置

当我使用 APP_ENV=dev 运行应用程序时,我可以通过 /_error/errorCode 访问自定义错误模板 - 但如果我将 APP_ENV 更改为 prod(使用 @ 987654325@ 当然设置为 false/0),我得到默认的 Symfony “500 Internal Server Error”页面。我什至在远程主机上部署应用程序后对其进行了测试,当我尝试访问 /random-unexisting-page 时,它​​也是同样的问题(已经得到了 error404.html.twig 模板集并且它通过 /_error 在“dev”上工作/404)。

我想知道,它与 /config/ 中的其他配置有什么关系吗?您知道问题可能是什么吗?

【问题讨论】:

我建议您创建一个小型复制器应用程序并将其报告给 Symfony 存储库。如果没有更多信息,很难知道您身边缺少什么。 【参考方案1】:

我尝试了几次,我想我已经理解了你的问题。

所以当你想创建一个个性化的错误页面时,首先你需要在模板目录下添加如下路径,和你的链接说的一样

templates/
└─ bundles/
   └─ TwigBundle/
      └─ Exception/
         ├─ error404.html.twig
         ├─ error403.html.twig
         └─ error.html.twig      # All other HTML errors (including 500)

最常见的错误是 500,因此您可以添加以下内容:error500.html.twig 或保留通用错误,这取决于您。

重要的是每当您在目录中添加文件错误或您只是对现有文件进行更改:您必须启动命令以清除缓存(您只能在项目没有错误时启动此命令)。如果您不这样做,更改将不会被可视化。

步骤:

修复错误或从以前的工作版本开始 启动清除命令:php bin\console cache:clear, 你会得到类似的东西result_of_clear_cache 刷新页面,您应该会看到新页面

PS。如果您需要一些视觉参考:

path

error_file

result_on_browser

【讨论】:

以上是关于Symfony 4.4 - 自定义错误模板不起作用的主要内容,如果未能解决你的问题,请参考以下文章

启用异常控制器时自定义错误页面不起作用

Symfony 4 - 来自自定义捆绑包的服务不起作用

从 Symfony 3.4 迁移到 Symfony 4.4 后,自定义投票器无法按预期工作

Django 自定义模板过滤器不起作用

Django 自定义模板过滤器不起作用

JQuery 在 Django 自定义模板标签的模板中不起作用