我知道这是一个很大的“不”...并且在我的网站上线时不应该显示开发人员错误页面,我该怎么做才能确保开发环境错误消息不会出现在生产中?
为什么会出现这些?我以为在生产模式下它默认是关闭的?我错过了一个设置吗?
Note:这是在共享服务器上。我使用的是app.php而不是app_dev.php。
当我在本地进入生产模式时,它会正确显示正确的错误消息(如下):
哎呀!发生错误
服务器返回“404 Not Found”。
有东西坏了。请发送电子邮件至 [email],让我们知道发生此错误时您正在执行的操作。我们会尽快修复它。给您造成的任何不便,请原谅。
然而在现场网站上它显示了 Symfony2 开发环境错误消息?
我尝试通过在 app/Resource/TwigBundle/views/Exception 中创建 error404.html.twig 文件来制作自定义错误消息但它仍然没有加载这个文件并且只显示开发人员错误消息。
在您的前端控制器中(web/app.php
在 Symfony 标准版中),一个实例AppKernel
被建造。AppKernel
继承了Symfony 的构造函数Kernel https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/Kernel.php#L77,这需要两个参数:
/**
* Constructor.
*
* @param string $environment The environment
* @param bool $debug Whether to enable debugging or not
*/
public function __construct($environment, $debug)
The $environment
参数仅决定使用哪种配置(config_dev.yml
, config_prod.yml
, ETC。)。这$debug
参数是启用或禁用调试的参数(因此决定是否显示异常)。
So in app.php
, 改变:
$kernel = new AppKernel('prod', true);
to
$kernel = new AppKernel('prod', false);
这应该用用户友好的错误页面替换详细的异常页面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)