Symfony2 Assetic在css/less文件中错误的cssrewrite资源路径

Sto*_*son 12 css less symfony twig assetic

重写后cssrewrite过滤器生成错误的URL:我的包含一个.less文件位于 Resources/public/less/common.less

我还有一个图像,位于Resources/public/images/colorfulbg.jpg中

我从命令行运行:

php app/console assets:install web --symlink
Run Code Online (Sandbox Code Playgroud)

它在web目录中生成正确的公共结构:

web
+--bundles
   +--mybundle
      +--less
      |  +--common.less
      |
      +--images
         +--colorfulbg.jpg
Run Code Online (Sandbox Code Playgroud)

在我的模板中,我有以下内容:

{% stylesheets 'bundles/mybundle/less/*' filter='cssrewrite,less' %}
  <link rel="stylesheet" href="{{ asset_url }}" type="text/css" />
{% endstylesheets %}
Run Code Online (Sandbox Code Playgroud)

该文件夹只包含一个.less文件,简单地说:

@bg: #f4f4f4;
body 
{
  background-image: @bg url(../images/colorfulbg.jpg);
}
Run Code Online (Sandbox Code Playgroud)

有一些错误,因为重写的背景路径是:

url(../../bundles/mybundle/images/colorfulbg.jpg);
Run Code Online (Sandbox Code Playgroud)

因此不适用背景

我究竟做错了什么?

我正在使用symfony 2.3和资产包2.3谢谢

Kon*_*ski -3

这是一个常见问题,我建议你不要使用 cssrewrite 过滤器并/在开头使用 urls

url("/bundles/mybundle/images/colorfulbg.jpg");
Run Code Online (Sandbox Code Playgroud)

当然这种方法有一个缺点,即网站必须安装在域的根目录中,但说实话我还没有看到 Symfony 项目安装在子目录中。