Symfony2:NotFoundHttpException的自定义404错误

Symfony2:NotFoundHttpException的自定义404错误,symfony,http-status-code-404,Symfony,Http Status Code 404,到目前为止,当我抛出以下命令时,我的“TwigBundle”自定义错误404.html.twig页面在生产模式下正确显示: $this->createNotFoundException('whatevs'); 但是,当Symfony抛出“NotFoundHttpException”时(例如,当找不到路由时),“找不到路由”页面确实会显示在app_dev上,提到“404找不到”,但在生产模式下它只会显示一个空白页面 这似乎不正常,因为根据Symfony文档:“createNotFoundE

到目前为止,当我抛出以下命令时,我的“TwigBundle”自定义错误404.html.twig页面在生产模式下正确显示:

$this->createNotFoundException('whatevs');
但是,当Symfony抛出“NotFoundHttpException”时(例如,当找不到路由时),“找不到路由”页面确实会显示在app_dev上,提到“404找不到”,但在生产模式下它只会显示一个空白页面

这似乎不正常,因为根据Symfony文档:“createNotFoundException()方法创建一个特殊的NotFoundHttpException对象,最终在Symfony内部触发404 HTTP响应。”

那为什么我没有得到同样的行为呢?我有什么遗漏吗

我正在使用主分支

编辑:这是我的security.yml文件,我正在使用FOSUserBundle和FOSFacebookBundle:

security:
providers:
    chain_provider:
        chain:
            providers: [fos_userbundle, my_fos_facebook_provider]
    fos_userbundle:
        id: fos_user.user_manager
    my_fos_facebook_provider:
        id: my.facebook.user

encoders:
    "FOS\UserBundle\Model\UserInterface": sha512

firewalls:
    public:
        pattern:   ^/
        fos_facebook:
            app_url: "http://apps.facebook.com/***/"
            server_url: "http://localhost/facebookApp/"
            login_path: /login
            check_path: /checkFb
            default_target_path: /
            provider: chain_provider
        form_login:
            login_path: /login
            check_path: /login_check
            provider: chain_provider
            remember_me:   true
            csrf_provider: form.csrf_provider
        remember_me:
            key:           %secret%
        anonymous: true
        logout: true
    login:                                           
        pattern:   ^/(login$|register|resetting)  
        anonymous: true

role_hierarchy:
    ROLE_ADMIN:       ROLE_ADMIN
    ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALOOW_TO_SWITCH]
    ROLE_USER:        ROLE_USER

access_control:
    - { path: ^/, role: [IS_AUTHENTICATED_ANONYMOUSLY] }
    - { path: ^/secured/, role: [IS_AUTHENTICATED_FULLY] } # This is the route secured with fos_facebook
    - { path: ^/facebook/,           role: [ROLE_FACEBOOK] }
我也有同样的问题。请看,您可能正在呼叫的是errorpage或layout.html.twig上授予的权限。阅读Stof的答案如何解决这个问题。

每一个Stof在:

“您避免呼叫是在错误页面中授予的(或者您仅在app.user不为null时才这样做,当没有令牌或令牌是匿名的时会发生这种情况)……问题是路由器在防火墙之前运行。因此,如果路由器因与路由不匹配而引发异常,则您的错误页面不在防火墙后面(因为它没有被称为)。”


的确,这就是问题所在!谢谢你的帮助。现在我的语言选择器出现了另一个问题,它使用的哈希合并在某种程度上不起作用……但现在我明确地指出,这是第一个在其他问题上阻塞的问题。尽管如此,这些错误只是在显示custo时的一个问题,这还是有点奇怪m错误页面的生产模式…除此之外,我没有问题,我的网站。