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

标签 css symfony less twig assetic

cssrewrite 过滤器在重写后产生错误的 url: 我有我的包,其中包含一个 .less 文件位于 Resources/public/less/common.less

我也有一张图片,位于Resources/public/images/colorfulbg.jpg

我从命令行运行:

php app/console assets:install web --symlink

在 web 目录中生成正确的公共(public)结构:

web
+--bundles
   +--mybundle
      +--less
      |  +--common.less
      |
      +--images
         +--colorfulbg.jpg

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

{% stylesheets 'bundles/mybundle/less/*' filter='cssrewrite,less' %}
  <link rel="stylesheet" href="{{ asset_url }}" type="text/css" />
{% endstylesheets %}

该文件夹仅包含一个 .less 文件,即:

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

有问题,因为重写后的后台路径是:

url(../../bundles/mybundle/images/colorfulbg.jpg);

因此不应用背景

我做错了什么?

我正在使用 symfony 2.3 和 assetic bundle 2.3 谢谢

最佳答案

我在为 assetic 指定 write_to 选项时遇到了同样的问题(假设,我希望我的样式输出到 web/assets/css/styles.css):

assetic:
    write_to:       '%kernel.root_dir%/../web/assets'

    assets:
        my_stylesheets:
            output: 'css/styles.css'
            inputs:
                - 'bundles/mybundle/css/styles.css'

除了为 write_to 选项指定 web/ 文件夹(或根本不指定)之外,我找不到更好的解决方案。但是,您仍然可以为每个单独的 Assets 使用子文件夹:

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

    assets:
        my_stylesheets:
            output: 'assets/css/styles.css'
            inputs:
                - 'bundles/mybundle/css/styles.css'

附言在这两种大写样式中,样式都在 web/assets/css/styles.css 中,但在第一种情况下,csrewrite 会给出错误的路径,而第二种情况下可以正常工作.

关于css - Symfony2 Assetic 在 css/less 文件中错误的 cssrewrite 资源路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19718191/

相关文章:

html - 显示内联创建不一致的宽度 IE 11

JavaScript 变量不在循环中更新

css - 嵌套 LESS 到 css 类

visual-studio - Web Essentials 包括来自另一个 CSS 文件的新 LESS 样式中的现有样式

css - 过渡后无法将叠加层隐藏起来

symfony - 如何通过 Symfony2 设置更改 Twig 加载程序

symfony - 如何清除 Symfony 2 中的路由缓存

git - 如何使 Composer 依赖项可提交?

css - 使用较少的混合扩展 Twitter 的 Bootstrap 2.x 默认网格(跨度类)

html - 构建 HTML 电子邮件时,我可以将样式放在 header 部分还是必须使用内联样式?