我正在使用Symfony2和assetic在一个现有的项目中,我无法弄清楚如何在我的CSS中引用图像。我把我的图片放在:
在我的主模板中,我有:
在
我看到了这个问题 Symfony2 - Assetic - load images in CSS,但我不知道如何使用
src/Organisation/MyBundle/Resources/public/images/
运行assets install之后: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
之类的命令,如何回到正常的dev样式修改CSS并重新加载页面?
更新2:我发现php app/console assetic:dump --watch
会自动更新资产,因为它们发生变化。
php app/console assets:install web
是可以的,但如果每次修改CSS都要运行php app/console assetic:dump web
(需要1分钟),那会让我变得很慢。在我的开发机器上,我修改CSS后更改立即可见,你有什么想法为什么它不再起作用了吗? - stivlo