CSS背景中的Symfony2图像资源

时间:2013-12-29 17:54:23

标签: css image symfony assets

我的symfony2中的图像资源有问题,我将其定义为css文件中的背景。但是,浏览器始终找不到图像。

这是我的样式表从基本布局中阻止:

 {% stylesheets '@FsHomeBundle/Resources/public/css/common.css'
                       '@FsHomeBundle/Resources/public/css/main.css' filter="cssrewrite"  %}
                <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}" />
        {% endstylesheets %}

这是我的css:

.header{
    background-image:url('../images/hdbg.png');
}

图片位于src/Fs/HomeBundle/Resources/public/images/hdbg.png

注意:我在没有cssrewrite过滤器的情况下进行了测试,但它也没有用,我也测试了更改网址。

之前有没有人遇到过这个问题?

编辑还要注意我在/app_dev.php工作,我做了一个资产:install和assetic:dump以及cache:每次进行测试时都清除。

2 个答案:

答案 0 :(得分:2)

尝试运行“app / console assets:install web”。

答案 1 :(得分:2)

安装资产后(我建议使用符号链接):

$ php app/console assets:install --symlink

您应该看到如下消息:

…
Installing assets for Fs\HomeBundle into web/bundles/fshome
…

记下web/bundles/fshome路径之类的路径,并使用该路径代替@Bundle语法:

{% stylesheets
    'bundles/fshome/css/common.css'
    'bundles/fshome/css/main.css'
     filter="cssrewrite"
 %}
     <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}" />
{% endstylesheets %}

现在cssrewrite应该写出正确的路径。

这是cssrewrite的已知限制,来自github issues

  

cssrewrite过滤器不适用于@bundle表示法   样式表(因为它会重写路径而不会进入   帐户将图像从捆绑包移动到Web文件夹