我有以下问题:
我将来自fancybox的CSS文件包含在我的 base.html.twig 文件中:
{% block head_style %}
{% stylesheets
'../vendor/twbs/bootstrap/dist/css/bootstrap.min.css' filter='cssrewrite'
'@Bundle/Resources/public/css/site.css' filter='cssrewrite'
'@Bundle/Resources/public/css/jquery.fancybox.css' filter='cssrewrite'
%}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock head_style %}
我的目录如下:
我现在所讨论的问题是,fancybox无法找到fancybox_sprite.png
,fancybox_overlay.png
和fancybox_loading.gif
。
以下是jquery.fancybox.css
中的一条路径:
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
background-image: url('../images/fancybox_sprite.png');
}
以下是浏览器正在寻找的路径:
http://project/Resources/public/images/fancybox_sprite.png
我还发现/images
目录不会加载到/web
目录中,而是加载到/bundles
目录中,尽管我使用了assets:install
, assets:install --symlink
和assetic:dump
。
为什么系统无法读取图像或为什么图像不能加载到/web
目录中?
我发现了一些有关此问题的问题,但他们都没有帮助我。
答案 0 :(得分:2)
不要将@Bundle表示法与cssrewrite一起使用,它已知失败 - read the second notice here。
您应该从Web文件夹中写入css文件的相对路径。使用bin / console assetic:install导出资产后,您的新base.html.twig应为:
{% block head_style %}
{% stylesheets
'../vendor/twbs/bootstrap/dist/css/bootstrap.min.css' filter='cssrewrite'
'bundles/something_online/css/site.css' filter='cssrewrite'
'bundles/something_online/css/jquery.fancybox.css' filter='cssrewrite'
%}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock head_style %}