2014-11-06 90 views
0

页面资源的问题我想有整个页面访问启用仅当用户登录(除FOS用户登录页面)使用FOSUserBundle

这是我如何设置访问控制:

access_control: 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/, role: ROLE_ADMIN } 

但问题是,因为它现在阻止我所有的脚本。 CSS和JS不可用,所以登录页面不是样式的!如果我删除:

- { path: ^/, role: ROLE_ADMIN } 

从访问控制一切正常,登录页面样式。如何将整个页面置于“锁定”(登录页面除外)但仍显示样式(CSS)的帮助?

+0

其中的CSS定位和你怎么样实现的呢?通常它应该就这样工作。 CSS应该位于/ web文件夹内,不受路由或安全性的影响。 – Koalabaerchen 2014-11-06 12:01:11

+0

在我的包中通过样式表中的base.html.twig实现。然后在web/bundles(在我的本地主机开发环境)上建立符号链接。 – 2014-11-06 12:03:48

+0

通过符号链接,你的意思是你有web/bundles中的实际文件,并且在链接到这些链接的资源束中有一个符号链接,并且你称之为符号链接? – Koalabaerchen 2014-11-06 12:07:28

回答

1

jscssbundles目录的路径正在被指出的用户必须是ROLE_ADMIN您的访问控制抓获。要解决这你可以添加规则,这些目录使用IS_AUTHENTICATED_ANONYMOUSLY^/规则上面..

access_control: 
    - { path: ^/css, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/js, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/bundles, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/, role: ROLE_ADMIN }