使用assetic时找不到包含在CSS中的Symfony文件

时间:2015-06-16 19:43:26

标签: css symfony twig assetic

我正在使用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 %}

1 个答案:

答案 0 :(得分:1)

来自Symfony docsthis 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/文件夹。