到目前为止,当我抛出时,我的“TwigBundle”自定义 error404.html.twig 页面在生产模式下正确显示:
$this->createNotFoundException('whatevs');
但是,当 Symfony 抛出“NotFoundHttpException”时(例如每当找不到路由时),“找不到路由”页面确实会显示在 app_dev 上,提到“404 Not Found”,但在生产模式下它只显示一个空白页...
这似乎不正常,因为根据 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] }