1

我在 Web 应用程序中使用 Assetic 和 Twig。我没有使用 symfony2 框架。

项目结构如下所示

  • 应用程序

    • 风格
    • 图片
  • 万维网

    • css
    • 图片

我在我的一个模板中使用 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;
}

我想直接使用我的 URL images/b.png,然后让资产转储程序确定完整路径。

我启用了 cssrewrite 过滤器,但它似乎没有做任何事情。如何在我的 CSS 中提供相对路径并让 cssrewrite 将其重写为绝对路径?

4

2 回答 2

0

原来我不必使用 cssrewrite。

由于 CSS 加载相对于 CSS 文件的图像,所以我只是做了../images/image.png. 这是一个更简单的解决方案,但我仍然没有弄清楚 cssrewrite 是如何工作的。

于 2012-02-18T03:54:39.273 回答
0

我发现绝对路径不会重写。url('/images/foo.png') 不会重写。...但是... url('../images/foo.png') 确实...我没试过:

url('./images/foo.png') - 但我希望这会重写。

我对此感到非常沮丧,但事后我认为这是有道理的。

Symfony2 网站上的文档确实这么说……但它很容易被忽视。

于 2014-04-07T23:00:10.270 回答