我正在使用Symfony和Twig,我使用资产。问题是我的CSS文件包含其他CSS文件:
@import url(ie8.css);
@import url(blocks.css);
@import url(plugins.css);
@import url(app.css);
显示网页时找不到这些文件。 字体和图像也是如此。我该如何解决这个问题?
我必须提到我加载了这样的css文件:
{% stylesheets
'@BaseBundle/Resources/public/plugins/bootstrap/css/bootstrap.min.css'
'@BaseBundle/Resources/public/css/style.css'
filter='cssrewrite'
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
答案 0 :(得分:1)
来自Symfony docs和this section as well:
请注意,在包含JavaScript文件的原始示例中,您使用类似
@AppBundle/Resources/public/file.js
的路径引用了这些文件,但在此示例中,您使用其实际的,可公开访问的路径引用了CSS文件:bundles/app/css
。您可以使用其中任何一个,但在使用CSS样式表的cssrewrite
语法时,存在导致@AppBundle
过滤器失败的已知问题。
和
使用
cssrewrite
过滤器时,请勿使用@AppBundle
语法引用CSS文件。有关详细信息,请参阅上一节中的注释。
cssrewrite
过滤器至关重要,因为它会重写您在样式表中定义的url()
个CSS路径。通过使用@AppBundle
语法,不再发生这种情况。你需要像这样加载CSS文件:
{% stylesheets
'bundles/base/css/bootstrap.min.css'
'bundles/base/css/style.css'
filter='cssrewrite'
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
请注意,路径可能不是100%正确(取决于您的捆绑名称)。您应该通过执行php app/console assets:install
仔细检查并查看web/
文件夹。