Php Symfony:404错误导致生产中出现500个错误

Php Symfony:404错误导致生产中出现500个错误,php,symfony,Php,Symfony,我有一个symfony应用程序,在生产服务器中运行时无法正确处理404错误,这是我在错误日志中看到的错误: Fatal error: Uncaught exception 'Symfony\Component\Routing\Exception\ResourceNotFoundException' in /var/www/site/releases/20160119210649/app/cache/prod/appProdUrlMatcher.php:7768 Stack trace:

我有一个symfony应用程序,在生产服务器中运行时无法正确处理404错误,这是我在错误日志中看到的错误:

    Fatal error:  Uncaught exception 'Symfony\Component\Routing\Exception\ResourceNotFoundException' in /var/www/site/releases/20160119210649/app/cache/prod/appProdUrlMatcher.php:7768
Stack trace:
0 /var/www/site/releases/20160119210649/app/cache/prod/classes.php(1419): appProdUrlMatcher->match('/daf')
1 /var/www/site/releases/20160119210649/app/cache/prod/classes.php(8339): Symfony\Component\Routing\Matcher\UrlMatcher->matchRequest(Object(Symfony\Component\HttpFoundation\Request))
2 /var/www/site/releases/20160119210649/app/cache/prod/classes.php(2483): JMS\I18nRoutingBundle\Router\I18nRouter->matchRequest(Object(Symfony\Component\HttpFoundation\Request))
3 [internal function]: Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(Object(Symfony\Component\HttpKernel\Event\GetResponseEvent), 'kernel.request', Object(Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher))
4 /var/www/site/releases/20160119210649/app/cache/prod/classes.php(2264): call_user_func(Array, O in /var/www/site/releases/20160119210649/app/cache/prod/classes.php on line 5336
我在/app/Resources/TwigBundle/views/Exception/error404.html.twig中自定义了404错误
我已经清除了缓存,甚至重新启动了php和nginx。

我遇到了完全相同的错误,经过长期研究,找到了解决方案。我的页脚中有一个语言开关,这些路由是使用当前路由和
\u locale
参数生成的

{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'de'})) }}
但是在404错误上没有路由。结果就是这个错误。 现在我将此链接包装到一个if语句中,如下所示:

<li>
    <a href="{% if app.request.get('_route') != "" and app.request.get('_route_params') is not null %}
            {{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'})) }}
        {% else %}
            {{ path("homepage", {'_locale': 'en'}) }}
        {% endif %}">
        English
    </a>
</li>

  • 我遇到了完全相同的错误,经过长期研究后找到了解决方案。我的页脚中有一个语言开关,这些路由是使用当前路由和
    \u locale
    参数生成的

    {{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'de'})) }}
    
    但是在404错误上没有路由。结果就是这个错误。 现在我将此链接包装到一个if语句中,如下所示:

    <li>
        <a href="{% if app.request.get('_route') != "" and app.request.get('_route_params') is not null %}
                {{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'})) }}
            {% else %}
                {{ path("homepage", {'_locale': 'en'}) }}
            {% endif %}">
            English
        </a>
    </li>
    

  • 可能与另一个重复:@JakubZalas我调查了这些,情况不同。第一种情况是关于404模板中不存在的路由,而不是这种情况。第二个是关于扩展templateWell时出错的,您需要提供更多详细信息。。。你检查过日志了吗?是的,我只看到了我已经粘贴的错误。可能是另一个的副本:@JakubZalas我查看了这些日志,情况不同。第一种情况是关于404模板中不存在的路由,而不是这种情况。第二个是关于扩展templateWell时出错的,您需要提供更多详细信息。。。你检查过日志了吗?是的,我只看到我已经粘贴的错误