使用access_control重定向时,Symfony2 FOSUserBundle损坏了css

时间:2014-12-02 10:05:36

标签: symfony fosuserbundle assetic

  • 列表项

我将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模式下遇到此问题,绝对没有生产问题。

1 个答案:

答案 0 :(得分:2)

我在这里找到了解决方案:

https://github.com/FriendsOfSymfony/FOSUserBundle/issues/368

问题是您必须在防火墙中禁用调试工具栏的路径,如下所示:

// security.yml
firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false

请确保在防火墙之前添加 dev firewal。