Symfony2中CSS资产中的图像

时间:2014-10-16 13:48:00

标签: css symfony twig assets

我有以下问题:

我将来自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 %}

我的目录如下:

src/Bundle/Resources Directory

我现在所讨论的问题是,fancybox无法找到fancybox_sprite.pngfancybox_overlay.pngfancybox_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:installassets:install --symlinkassetic:dump

The /web directory

为什么系统无法读取图像或为什么图像不能加载到/web目录中?

我发现了一些有关此问题的问题,但他们都没有帮助我。

1 个答案:

答案 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 %}