我在我的控制器中有这个:
if(some stuff) {
throw $this->createNotFoundException('message');
}
Run Code Online (Sandbox Code Playgroud)
当我在dev env中测试它时,我得到了Symfony的页面,告诉我用我的文本检测到Exception,但是我无法在prod env中测试它:(我运行它php app/console cache:clear --env=prod --no-debug然后仅在URL中app_dev.php替换app.php但是工具栏和Symfony的错误页面留.
我创建了这个文件 - app/Resources/TwigBundle/views/Exception/error.html.twig.它会在生产中呈现吗?
这是在:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>An Error Occurred: {{ status_text }}</title>
</head>
<body>
<h1>Oops! An Error Occurred</h1>
<h2>The server returned a "{{ status_code }} {{ status_text }}".</h2>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我应该在哪里给出值status_code和status _text?或者他们是从例外中获取的?
因此,一般来说,我想要做的是当我的控制器动作中的条件为真时,我的自定义错误页面将显示在prod env中.我是否已经成功,如果没有,如何制作它以及如何在prod env中查看结果?
Jim*_*oot 14
迟到总比我想的好......
您可能知道重写模板.您可以覆盖所需的任何模板.因此,如果您想覆盖dev错误页面,仅用于调试,那么您应该覆盖模板:
exception_full.html.twig
Run Code Online (Sandbox Code Playgroud)
您可以通过在此文件夹中创建此类文件来执行此操作:
app/Resources/TwigBundle/views/Exception
Run Code Online (Sandbox Code Playgroud)
现在,您将在开发模式下看到自定义的404.
阅读文档http://symfony.com/doc/2.0/cookbook/controller/error_pages.html
和自定义404页面和其他错误页面