繁体   English   中英

Symfony2:找不到产品404 = 200?

[英]Symfony2: prod not found 404 = 200?

在产品环境中,当请求不存在的URI(例如,... / green)时,我希望呈现自定义404错误页面。 响应头是

Date: Sat, 16 Nov 2013 19:11:55 GMT
Server: Apache/2.4.4 (Win32) PHP/5.4.8
X-Powered-By: PHP/5.4.16
Content-Length: 2455
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

200 OK

响应是

Fatal error: Uncaught exception 'Symfony\Component\Routing\Exception\ResourceNotFoundException' in G:\Documents\workspace\sym\app\cache\prod\classes.php on line 1883 Symfony\Component\Routing\Exception\ResourceNotFoundException: in G:\Documents\workspace\sym\app\cache\prod\appProdUrlMatcher.php on line 1682 Call Stack: 0.0000 130880 1. {main}() G:\Documents\workspace\sym\web\app.php:0 0.0200 340984 2. Symfony\Component\HttpKernel\Kernel->handle() G:\Documents\workspace\sym\web\app.php:21 0.1800 2659792 3. Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle() G:\Documents\workspace\sym\app\bootstrap.php.cache:2249 0.1800 2661000 4. Symfony\Component\HttpKernel\HttpKernel->handle() G:\Documents\workspace\sym\app\bootstrap.php.cache:2947 0.1800 2661032 5. Symfony\Component\HttpKernel\HttpKernel->handleRaw() G:\Documents\workspace\sym\app\bootstrap.php.cache:2818 0.1800 2661576 6. Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() G:\Documents\workspace\sym\app\bootstrap.php.cache:2833 0.4900 4232624 7. Symfony\Component\EventDispatcher\EventDispatcher->dispatch() G:\Documents\workspace\sym\app\cache\prod\classes.php:1764 0.4900 4233384 8. Symfony\Component\EventDispatcher\EventDispatcher->doDispatch() G:\Documents\workspace\sym\app\cache\prod\classes.php:1600 0.4900 4234080 9. call_user_func() G:\Documents\workspace\sym\app\cache\prod\classes.php:1667 0.4900 4234096 10. Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest() G:\Documents\workspace\sym\app\cache\prod\classes.php:1667 0.4900 4234360 11. Symfony\Component\Routing\Router->match() G:\Documents\workspace\sym\app\cache\prod\classes.php:1872 0.4900 4238400 12. appProdUrlMatcher->match() G:\Documents\workspace\sym\app\cache\prod\classes.php:1207 Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /green" in G:\Documents\workspace\sym\app\cache\prod\classes.php on line 1883 Call Stack: 0.0000 130880 1. {main}() G:\Documents\workspace\sym\web\app.php:0 0.0200 340984 2. Symfony\Component\HttpKernel\Kernel->handle() G:\Documents\workspace\sym\web\app.php:21 0.1800 2659792 3. Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle() G:\Documents\workspace\sym\app\bootstrap.php.cache:2249 

我越努力理解这一点,我就会越困惑。 文档说,将在app\\Resources\\TwigBundle\\views\\Exception中呈现一个简单的error404.html.twig (是的,我已经清除了产品缓存-多次!产品日志中没有条目。)文档是否错误,我真的需要创建一个异常处理程序来显示此404页面,因为响应是200?

更新:

所以我想在开发环境中使用404并不意味着它将在产品中使用404。 然后,我尝试使用简单的异常处理程序来获取自定义错误页面,但随后没有Monolog邮件。 由于自定义处理程序使用Twig,因此尝试将自定义处理程序与Monolog集成在一起。 难怪我的头在旋转。

[Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException] Circular reference detected for service "router", path: "cache_warmer -> router -> monolog.logger.router -> mana.exception.controller -> templating -> twig -> templating.helper.logout_url".

并不是很明显,该错误是由于错误的error404.html.twig文件引起的。 一旦更正,它将变得很有用。 道歉。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM