私は Symfony 2.1 に基づいており、以前に他の人によって開発された Web アプリケーションをサポートしています。私のタスクは、カスタマイズされたエラー ページを追加しようとしています。
私がしたことは、以下のファイルを追加することだけでした:
/app/Resources/TwigBundle/views/Exception/
|-error404.html.twig
|-error500.html.twig
|-exception_full.html.twig
それらのすべてを次のコンテンツにします。
<!DOCTYPE html>
<html>
<body>
<p>Errore!</p>
</body>
</html>
たとえば、ルートが app_dev.php で間違って入力された場合、エラー ページは開発環境で正しく表示されます。デバッグ エラー ページをオーバーライドするために、exception_full テンプレート (上記のリストに含まれています) を使用しました。
残念ながら、フォームでURLを使用すると、prod構成で同じ動作が得られません
http://[..host..]/web/app.php/[..wrong route..]
ここで何が欠けているのか誰にも分かりますか? また、これを追加して ExceptionController をさらに検査しようとしました:
echo "Abort!";
exit;
ここで関数 findTemplate(...) の先頭に:
/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Controller/ExceptionController.php
そして、応答が「中止!」だったので、戦略が開発に正しく適用されたことを確認できました。予想どおりですが、応答がまだ空白のページだったため、本番環境ではありません。
完全を期すために、ルートが正しい場合、応答は一般的に正しいと言えます。