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

问题描述

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

的指南正确设置

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

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

解决方法

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

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

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
  • 刷新页面,您应该会看到新页面

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

path

error_file

result_on_browser

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...