Symfony2在css/less文件中断言错误的CSSRWRITE资源路径
CSSRERITE筛选器在重写后生成错误的URL: 我的包中包含一个.less文件,位于 Resources/public/less/common.less 我还有一张图片,位于Resources/public/images/colorfulbg.jpg 我从命令行运行:Symfony2在css/less文件中断言错误的CSSRWRITE资源路径,css,symfony,less,twig,assetic,Css,Symfony,Less,Twig,Assetic,CSSRERITE筛选器在重写后生成错误的URL: 我的包中包含一个.less文件,位于 Resources/public/less/common.less 我还有一张图片,位于Resources/public/images/colorfulbg.jpg 我从命令行运行: php app/console assets:install web --symlink 在web目录中生成正确的公共结构: web +--bundles +--mybundle +--less
php app/console assets:install web --symlink
在web目录中生成正确的公共结构:
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 %}
由于重写的背景路径是:
url(../../bundles/mybundle/images/colorfulbg.jpg);
因此不应用背景
我做错了什么
我正在使用symfony 2.3和assetic bundle 2.3
谢谢这是一个常见的问题,我建议您不要在开始时使用cssrewite过滤器,而使用带有
/
的URL
url("/bundles/mybundle/images/colorfulbg.jpg");
当然,这种方法有一个缺点,即网站必须安装在域的根目录中,但老实说,我还没有看到Symfony项目安装在子目录中。您对模板中的资产使用了错误的定义类型,请参见以下内容(注意@前缀)。此外,在css中,您必须相对地从Bundle/Resources/public/less文件夹向下移动。所以它不是
/bundles/
或。/bundles
,而是最有可能的。/images/
{% stylesheets filter='less,cssembed,?yui_css' output='css/final.css'
'@AcmeDemoBundle/Resources/public/beautifulslider.css'
'@AcmeDemoBundle/Resources/public/less/site.less'
%}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" media="screen" />
{% endstylesheets %}
追捧的图像
xxx michael [master] $ app/console assetic:dump --env=dev
我恢复了线路,在再次踢阿塞特之后,他们又回来了。。。我认为dis建议不适用于涉及较少的事实?我在为assetic指定
write\u to
选项时遇到了相同的问题(假设,我希望我的样式输出到web/assets/css/styles.css
):
除了为write\u to
选项指定web/
文件夹之外,我找不到更好的解决方案(或者根本不指定它)。但是,您仍然可以为每个单独的资源使用子文件夹:
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
会给出错误的路径,而第二种情况会很好。我不明白你的意思……如果你只使用背景图像:@bg url(images/colorfulbg.jpg)代码>?url重写自:url(../../bundles/timerbase/images/colorfulbg.jpg);到url(../../bundles/timerbase/less/images/colorfulbg.jpg);我希望有类似(../images/colorfulbg.jpg)的东西,好吧,就这样就我个人而言,我和SASS在assetic上有过同样的看法,结论是你不想这么做。希望你有更多的运气!那么,解决方案是什么呢?即使在删除cssrewrite并按照您的建议使用url后,它仍然不起作用:/i认为app_dev.php会妨碍…@Stormsson您的操作系统支持符号链接吗?Windows没有。再次尝试php应用程序/控制台资产:安装web--symlink
,然后导航到web目录并检查路径是否正确是的,我在osx上。路径似乎都是正确的,我确认我在第一篇文章中发布的结构已被检查无。。。食谱本身建议不要这样做,因为cssrewite:顺便说一句,问题是css/less文件中的url不正确。css/less文件已正确包含
xxx michael [master] $ app/console assetic:dump --env=dev
assetic:
write_to: '%kernel.root_dir%/../web/assets'
assets:
my_stylesheets:
output: 'css/styles.css'
inputs:
- 'bundles/mybundle/css/styles.css'
assetic:
write_to: '%kernel.root_dir%/../web'
assets:
my_stylesheets:
output: 'assets/css/styles.css'
inputs:
- 'bundles/mybundle/css/styles.css'