如何显示404错误页面而不是Symfony4中的错误

时间:2018-10-11 23:52:57

标签: symfony symfony4

这是我的页面:error404.html.twig作为文档Example 404 Error Template

{# templates/bundles/TwigBundle/Exception/error404.html.twig #} 
{% extends 'base.html.twig' %}
{% block body %}
<h1>Page not found</h1>
        <p>
            The requested page couldn't be located. Checkout for any URL
            misspelling or <a href="{{ path('homepage') }}">return to the homepage</a>.
        </p>

{% endblock %}

这是我的页面config / routes / dev / twig.yaml

# config/routes/dev/twig.yaml
_errors:
    resource: '@TwigBundle/Resources/config/routing/errors.xml'
    prefix:   /_error

这是我的页面config / packages / twig.yaml

# config/packages/twig.yaml
twig:
    exception_controller: App\Controller\ExceptionController::showException

我应该怎么做才能使其起作用?

  • 通过我使用第一种方法的方式覆盖默认错误模板。

错误是:enter image description here

services.yaml: enter image description here

1 个答案:

答案 0 :(得分:0)

如果您处于开发环境中,而不是404页面,则会得到NotFoundHttpException,那么一切都很好,因为这是记录在案的所需行为,如此处所述:https://symfony.com/doc/current/controller/error_pages.html

  

在开发环境中,Symfony捕获所有异常并显示一个特殊的异常页面

要绕过此步骤并实际上看到您的自定义404页面,您需要通过特殊的路径访问模板:http://localhost/index.php/_error/404