如何覆盖Symfony的错误模板

时间:2018-10-05 14:13:08

标签: php symfony twig symfony-3.2

我想覆盖Symfony 3中的错误模板。我首先创建了带有个性化树枝的TwigBundle文件夹。

app/
 └─ Resources/
    └─ TwigBundle/
      └─ Exception/
        ├─ error404.html.twig
        ├─ error403.html.twig
        ├─ error.html.twig   

然后我检查了包含以下行的routing_dev文件:

_errors:
resource: "@TwigBundle/Resources/config/routing/errors.xml"
prefix:   /_error

Symfony仍显示默认错误模板。我想知道是否应该验证其他内容。

PS:我已经检查过此文档:How to Customize Error Pages

编辑

enter image description here

1 个答案:

答案 0 :(得分:0)

被覆盖的文件应位于名为views的子文件夹中。正确的文件树如下所示:

app/
 └─ Resources/
    └─ TwigBundle/
        └─ views/
            └─ Exception/
                ├─ error404.html.twig
                ├─ error403.html.twig
                ├─ error.html.twig  

之后清除缓存。

请注意,这些被覆盖的错误模板不会在dev环境中显示

如果要在dev环境中测试模板,则必须确保已将以下内容导入routing_dev.yml

_errors:
    resource: "@TwigBundle/Resources/config/routing/errors.xml"
    prefix:   /_error

现在您可以访问/_error/<error-code>.html(即集成网络服务器上的localhost:8000/_error/404.html