Symfony2:自定义错误页面扩展base.html.twig

时间:2014-03-01 08:00:29

标签: symfony custom-error-pages

我正在尝试在Symfony中自定义错误页面。

这是位于error.html.twig的<{1}}文件:

app/Resources/TwigBundle/views/Exception/

不幸的是我收到以下错误消息:

  

致命错误:未捕获的异常   'Symfony \ Component \ Routing \ Exception \ ResourceNotFoundException'中   [...]   供应商\ symfony的\ symfony的\ SRC \的Symfony \元器件\ HttpKernel \事件监听\ RouterListener.php   在第144行

当我删除{% extends '::base.html.twig' %} {% block body %} <h1>{{ status_code }}: {{ status_text }}</h1> {% endblock %} 时,一切正常。有关如何将我的基本模板包含在错误页面中的任何想法吗?

编辑1: 奇怪的是,它似乎在403被抛出时起作用,例如,当我访问{% extends '::base.html.twig' %}但没有必要的权限时。

编辑2: 我将/user的所有内容粘贴到base.html.twig文件中,发现该错误是由于error.html.twig包提供的菜单引起的:

KnpMenuBundle

当我删除此行时,一切正常。但这不是我想要的方式。是否没有可能保持导航?

5 个答案:

答案 0 :(得分:1)

文件应位于app/Resources/views/Exception/

而不是

app/Resources/TwigBundle/views/Exception/

答案 1 :(得分:0)

您是否将页面放在以下位置?

/app/ResourceS/TwigBundle/views/Exception/error404.html.twig

{% extends '::base.html.twig' %}
{% block content %}
{%trans%}errors.404{%endtrans%}
 {% endblock %} 

答案 2 :(得分:0)

// app/Resouces/views/base.html.twig

×
{% include('path/to/include') %}

○
{% include('::path/to/include') %}

答案 3 :(得分:0)

我终于完成了将整个代码(base + current)放在同一个'error.html.twig'文件中。

它适用于我,避免了一个巨大的头痛。

答案 4 :(得分:0)

删除第一行https://symfony.com/doc/current/templating.html

中的 ::
android:layout_weight