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/