我将FOSUserBundle与Symfony一起使用。当我在access_control中使用它时:- { path: ^/, role: ROLE_USER }
我的css没有很好地显示出来。我在layout.html.twig中有2次调用我的CSS:
{% set bootstrap_style = client.styles.front.stylesheet %}
<link rel="stylesheet" href="{{ asset('bundles/portalfront/css/bootstrap.' ~ bootstrap_style ~ '.css' ) }}" />
然后我有:
{% stylesheets filter="cssrewrite"
'bundles/portalfront/css/font-awesome.min.css'
'bundles/portalfront/css/style.css'
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
当我使用- { path: ^/, role: ROLE_USER }
时,第二次调用似乎已损坏但如果我使用- { path: ^/$, role: ROLE_USER }
则效果非常好
这是我的security.yml:
security:
providers:
fos_userbundle:
id: fos_user.user_provider.username_email
encoders:
FOS\UserBundle\Model\UserInterface: sha512
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/, role: ROLE_USER }
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
当我说它已损坏时,我认为所有样式都没有应用,当我在chrome debug中检查文件时,我在.css文件中看到html代码而不是css代码。还有一件令人不安的事情是,我的引导风格很好,似乎被多次调用。也许我们在这里有一种重定向因为它破坏了css文件并没有被加载。
注意:我只在DEV模式下遇到此问题,绝对没有生产问题。
答案 0 :(得分:2)
我在这里找到了解决方案:
https://github.com/FriendsOfSymfony/FOSUserBundle/issues/368
问题是您必须在防火墙中禁用调试工具栏的路径,如下所示:
// security.yml
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
请确保在主防火墙之前添加 dev firewal。