首页 文章

CSS背景中的Symfony2图像资源

提问于
浏览
2

我在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

Note: 我在没有 cssrewrite 过滤器的情况下进行了测试,但它也没有用,我测试过也改变了网址 .

以前有人遇到过这个问题吗?

Edit 还要注意我在/app_dev.php工作,我做了一个资产:安装和资产:转储和缓存:每次进行测试都清除 .

2 回答

  • 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文件夹

  • 2

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

相关问题