问题我有一个CSS文件,其中包含一些路径(用于图像,字体等。url(..))。我的路径结构是这样的:...+-src/| +-MyCompany/| +-MyBundle/| +-Resources/| +-assets/| +-css/| +-stylesheets...+-web/| +-images/| +-images......我想在样式表中引用我的图像。第一个解决方案我将CSS文件中的所有路径更改为绝对路径。这不是解决方案,因为应用程序也应该(并且必须!)也在子目录中工作。第二解决方案与一起使用Assetic filter="cssrewrite"。所以我将我的CSS文件中的所有路径都更改为url("../../../../../../web/images/myimage.png")代表从我的资源目录到/web/images目录的实际路径。这不起作用,因为cssrewrite会生成以下代码:url("../../Resources/assets/")这显然是错误的道路。assetic:dump创建此路径后,这仍然是错误的:url("../../../web/images/myimage.png")Assetic的树枝代码:{% stylesheets '@MyCompanyMyBundle/Resources/assets/css/*.css' filter="cssrewrite"%}<link rel="stylesheet" href="{{ asset_url }}" />{% endstylesheets %}当前(第三)解决方案由于所有CSS文件都以结尾/web/css/stylexyz.css,因此我将CSS文件中的所有路径更改为相对路径:url("../images/myimage.png")这种(错误的)解决方案可以正常工作,但在dev环境中除外:CSS路径为/app_dev.php/css/stylexyz.css,因此由此产生的图像路径为/app_dev.php/images/myimage.png,从而导致NotFoundHttpException。有更好的可行解决方案吗?
3 回答
精慕HU
TA贡献1845条经验 获得超8个赞
目前,cssrewrite过滤器与@bundle表示法不兼容。因此,您有两种选择:
参考在网络文件夹中的CSS文件(后:console assets:install --symlink web)
{% stylesheets '/bundles/myCompany/css/*." filter="cssrewrite" %}
使用cssembed过滤器像这样将图像嵌入CSS。
{% stylesheets '@MyCompanyMyBundle/Resources/assets/css/*.css' filter="cssembed" %}
- 3 回答
- 0 关注
- 880 浏览
相关问题推荐
添加回答
举报
0/150
提交
取消