我在Web应用程序中使用Assetic和Twig。我没有使用symfony2框架。
项目结构如下所示
应用
WWW
我在我的一个模板中使用了Assetic样式表标记:
{% stylesheets 'style/a.css' filter='cssrewrite' output='css/*'%}
<link href="{{ asset_url }}" rel='stylesheet' type='text/css'>
{% endstylesheets %}
目前该应用程序托管在http://localhost/myapp/,有人可以通过http://localhost/myapp/www
访问该应用我编写了一个转储条,它编译我的资产并将它们转储到www
下的目录。
在我的CSS中,我使用绝对路径引用我的图像(有效):
#myelement{
background: url('/app/www/images/b.png') no-repeat;
}
如果我使用相对路径(使用cssrewrite过滤器),则不会重写URL:
#myelement{
background: url('images/b.png') no-repeat;
}
我想将我的网址仅用作images/b.png
,然后让资产转储程序确定完整路径。
我启用了cssrewrite过滤器,但它似乎没有做任何事情。如何在CSS中提供相对路径并让cssrewrite将其重写为绝对路径?
答案 0 :(得分:0)
原来我没有必要使用cssrewrite。
由于CSS加载了相对于CSS文件的图像,我只做了../images/image.png
。这是一个更简单的解决方案,但我还没有弄清楚cssrewrite是如何工作的。
答案 1 :(得分:0)
我发现绝对路径不会重写。 url('/ images / foo.png')不会重写。 ......但...... url('../ images / foo.png')确实...... 我没试过:
url('./ images / foo.png') - 但我希望这会重写。
我对此感到非常沮丧,但我认为事后才有意义。
Symfony2网站上的文档确实说明了......但很容易被忽视。