2014-03-01 16 views
7

Ich versuche, die Fehlerseiten in Symfony anzupassen.Symfony2: Benutzerdefinierte Fehlerseite Erweiterung base.html.twig

Dies ist meine error.html.twig Datei in app/Resources/TwigBundle/views/Exception/ befindet:

{% extends '::base.html.twig' %} 

{% block body %} 

<h1>{{ status_code }}: {{ status_text }}</h1> 

{% endblock %} 

Leider bekomme ich folgende Fehlermeldung:

Fatal error: Uncaught exception 'Symfony\Component\Routing\Exception\ResourceNotFoundException' in [...] vendor\symfony\symfony\src\Symfony\Component\HttpKernel\EventListener\RouterListener.php on line 144

Als ich {% extends '::base.html.twig' %} funktioniert alles einwandfrei entfernen. Irgendwelche Ideen, wie ich meine Basisvorlage in die Fehlerseite aufnehmen kann?

Edit 1: Das Merkwürdige ist, dass es scheint zu funktionieren, wenn ein 403 geworfen wird, zum Beispiel, wenn ich /user zugreifen, aber nicht über die notwendige Berechtigung.

Edit 2: klebte ich den ganzen Inhalt meiner base.html.twig in die error.html.twig Datei und bemerkte, dass der Fehler aufgrund der durch das KnpMenuBundle Bündel gemacht Menü verursacht wurde:

{{ knp_menu_render('ACMEMemberBundle:Builder:mainMenu', { 'style': 'pills', 'currentClass': 'active' }) }} 

Wenn ich diese entfernen Linie, alles funktioniert gut. Aber so würde ich nicht gerne gehen. Gibt es keine Möglichkeit, die Navigation beizubehalten?

+1

http://stackoverflow.com/questions/12634961/how-to-show-customized-404-Fehler-Seite-Symfony2 –

+1

@ abbiya Danke für deinen Kommentar. Wenn Sie sich auf die Produktionsumgebung beziehen, führe ich meine Anwendung tatsächlich im Produktionsmodus aus. – user3367658

+0

Ich hatte ein ähnliches Problem. Das Problem dort war "Pfad" mit der Route der aktuellen Anfrage. 404 Fehler hat keine Route. –

Antwort

0

Haben Sie die Seite an der folgenden Stelle eingefügt?

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

{% extends '::base.html.twig' %} 
{% block content %} 
{%trans%}errors.404{%endtrans%} 
{% endblock %} 
0
// app/Resouces/views/base.html.twig 

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

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

Ich habe es endlich geschafft den gesamten Code (Basis + Strom) in der gleichen ‚Fehler setzen. html.twig Datei.

Es funktioniert für mich und vermieden große Kopfschmerzen.

1

sollte Datei in app/Resources/views/Exception/

befinden statt

app/Resources/TwigBundle/views/Exception/

Verwandte Themen