5

我在现有项目中使用 Symfony2 和资产,但我不知道如何在我的 CSS 中引用图像。我已将图像放入:src/Organisation/MyBundle/Resources/public/images/

运行资产安装后:php app/console assets:install public

我可以在浏览器中正确加载它们:http://sitename/bundles/organisationmy/images/logo.png

但是,当我尝试在 CSS 中指向它们时,使用:url('/bundles/organisationmy/images/logo.png')

使用 firebug 检查,url 被更改为:url('/web/bundles/organisationmy/images/logo.png')并导致 404。

在我的主模板中,我有:

{% stylesheets filter='yui_css' output='css/output.css'
    '@MyBundle/Resources/public/css/bootstrap.min.css'
    '@MyBundle/Resources/public/css/bootstrap-responsive.min.css'
    '@MyBundle/Resources/public/css/my.css'
 %}

config.yml我有:

assetic:
    debug: %kernel.debug%
    use_controller: false
    java: /usr/bin/java
    filters:
        cssrewrite: ~
        yui_css:
            jar: %kernel.root_dir%/java/yuicompressor-2.4.7.jar
        yui_js:
            jar: %kernel.root_dir%/java/yuicompressor-2.4.7.jar

routing.yml我有:

_assetic:
    resource: .
    type: assetic

我见过这个问题Symfony2 - Assetic - load images in CSS,但我不知道我是否以及如何同时使用filter='cssrewrite'filter='yui_css'或者如何解决问题。

基本上,如果我可以停止 Symfony2 为我的 CSS 图像路径添加前缀/web/,问题就会得到解决。或者,有谁知道在 Symfony2 中解决这个问题的正确方法是什么?

更新:我注意到即使我放 url('something.png') 加载页面时 CSS 也不会再更新,所以我可能用命令行搞砸了一些东西,我也给出了命令比如php app/console assetic:dump——如何回到正常的修改CSS和重新加载页面的开发风格?

UPDATE2:我发现php app/console assetic:dump --watch当资产发生变化时会自动更新它们。

4

1 回答 1

8

为了在您的 CSS 文件中加载图像,路径必须是"bundles/(bundle name)/images/(file name)"

更新

确保你有

write_to: %kernel.root_dir%/../web 

在下 assetic:_config.yml

background: url('/bundles/(bundle name)/images/prev.png')在你的 CSS

然后运行

php app/console assets:install web 

php app/console assetic:dump web
于 2012-07-03T14:14:32.160 回答