如何在Symfony2开发环境中显示404错误页面

Viv*_*ien 12 development-environment symfony

我想在开发环境中处理404页面.我使用此文件自定义404:app/Resources/TwigBundle/views/Exception/error.html.twig

这个产品网址正常工作: mysite.com/404

但是这个mysite.com/app_dev.php/404抛出NotFoundHttpException并给我开发调试页面.

是否可以显示错误页面而不是调试页面?

更新:

官方文档现在有一章关于:在开发期间测试错误页面

CRO*_*NUS 19

要显示错误页面,请在web/app_dev.php中将第二个参数更改为false

$kernel = new AppKernel('dev', false);
Run Code Online (Sandbox Code Playgroud)

在测试了您需要的内容后,请将其更改回来.


UPDATE

感谢@ user2019515指出 - 现在(2.3及以上)在Symfony文档中有一个指向WebfactoryExeptionsBundle的链接,不应该使用我上面写的方法.


Chr*_*nel 13

您需要在开发时覆盖exception_full.html.twig模板.

app/Resources/TwigBundle/views/Exception/exception_full.html.twig
Run Code Online (Sandbox Code Playgroud)

Symfony2使用此模板在开发期间为您提供尽可能多的调试信息.

当内核处于调试模式时,Symfony2将使用exception_full.html.twig,否则它将使用您覆盖的特定模板.

有关更多详细信息,请参阅vendor/symfony/src/Symfony/Bundle/TwigBundle/Controller/ExceptionController.php,特别是showAction()和findTemplate()函数.

  • 我不得不`cache:clear`来覆盖`exception_full.html.twig`(SF2.1) (2认同)

COi*_*Oil 13

开发环境中的Symfony2.6开始,您可以使用以下路由:

/_error/404.html
Run Code Online (Sandbox Code Playgroud)

404要测试的错误代码和html请求的格式在哪里.要使用此功能,请确保您的routing_dev.yml文件中包含以下条目:

# app/config/routing_dev.yml
_errors:
    resource: "@TwigBundle/Resources/config/routing/errors.xml"
    prefix:   /_error
Run Code Online (Sandbox Code Playgroud)