Bar*_*cki 5 symfony assetic fosuserbundle symfony-2.1
我有简单的登录页面和安全设置如下:
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
use_referer: true
always_use_default_target_path: true
default_target_path: /
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: ^/, role: ROLE_ADMIN }
Run Code Online (Sandbox Code Playgroud)
在我的base.html.twig文件中,我有
{% stylesheets '@BrStgCcBundle/Resources/public/css/bootstrap.css' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
Run Code Online (Sandbox Code Playgroud)
并且仅当我在应用程序中获得授权时才包括那些文件.所以在登录后系统找到了这个资产,但在没有之前它没有,当我按资产跟踪生成的链接时,我被重定向到登录页面.
在视图中链接如下所示:
<link rel="stylesheet" href="/app_dev.php/css/026adfc_bootstrap_1.css" />
Run Code Online (Sandbox Code Playgroud)
此文件存在于驱动器上,当记录时调用时,如果未记录则显示正确的CSS,则会将我重定向到登录页面.
Bar*_*cki 18
此外,我发现这有助于添加到security.yml
:
firewalls:
dev:
pattern: ^/(_profiler|_wdt|css|js|assets)
security: false
Run Code Online (Sandbox Code Playgroud)
这个是正常的.您说根目录下的所有内容(模式:^ /)都在主防火墙后面,要访问这些文件,您需要成为管理员(路径:^ /,角色:ROLE_ADMIN).所以你需要设置另一个规则,并说可以匿名访问css目录:
- { path: ^/css, role: IS_AUTHENTICATED_ANONYMOUSLY }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3120 次 |
最近记录: |