如何添加自定义错误页面Symfony 3

时间:2018-07-19 14:28:11

标签: symfony exception error-handling

我尝试过documentation所说的话:

app/
└─ Resources/
   └─ TwigBundle/
      └─ views/
         └─ Exception/
            ├─ error404.html.twig
            ├─ error403.html.twig
            ├─ error.html.twig      # All other HTML errors (including 500)
            ├─ error404.json.twig
            ├─ error403.json.twig
            └─ error.json.twig      # All other JSON errors (including 500)

但是这些都没有显示prod env上的自定义页面。然后,我尝试在同一Exception文件夹中添加一个exception.html.twig文件,该文件可以处理所有错误(404、500,...),但是它在dev中显示,因此我无法如果我有该文件,则在开发时看到错误。在生产环境中,它始终显示红色屏幕

enter image description here

那么将自定义错误页面制作到生产环境中的正确方法是什么,以及如何对其进行测试?

2 个答案:

答案 0 :(得分:1)

错误页面未在开发环境中使用。在开发过程中,它会显示另一个错误页面,其中包含更多调试信息(其中可能包含您不想公开的信息)。默认情况下,Symfony标题栏不会显示在生产中。

要查看错误页面在生产中的外观,请尝试Error page previews

# app/config/routing_dev.yml
_errors:
    resource: "@TwigBundle/Resources/config/routing/errors.xml"
    prefix:   /_error

如果您的生产环境显示Symfony Exception页面,请确保在debug中将app.php标志设置为false:

$kernel = new AppKernel('prod', false);

答案 1 :(得分:0)

我认为您的问题的答案是关于清除缓存。
使用以下命令:
$ php bin /控制台缓存:清除--no-warmup --env = prod
然后您会看到错误页面,
祝你好运。