【问题标题】:How to add custom error page Symfony 3如何添加自定义错误页面 Symfony 3
【发布时间】:2018-12-27 17:52:27
【问题描述】:

我试过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 中显示,所以当我看不到错误时如果我有那个文件,正在开发。在生产环境中,它总是显示红屏

那么,将自定义错误页面投入生产的正确方法是什么以及如何对其进行测试?

【问题讨论】:

标签: symfony exception error-handling


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 谢谢,但这不能回答问题。在我的生产服务器中,它没有显示常见的 404 页面,它显示了 symfony 的红色页面。可能是生产环境不如生产?
  • 我已经更新了我的问题。如果这没有帮助,请分享来自config_prod.yml 和(如果您更改了某些内容)您的app.php 的一些信息。
【解决方案2】:

我认为您的问题的答案是关于清除缓存。
使用这个命令:
$php bin/console cache:clear --no-warmup --env=prod
你会得到你的错误页面,
祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多