为了账号安全,请及时绑定邮箱和手机立即绑定

Symfony 2中CSS文件中资产的路径

Symfony 2中CSS文件中资产的路径

天涯尽头无女友 2019-12-09 14:04:21
问题我有一个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" %}


查看完整回答
反对 回复 2019-12-09
  • 3 回答
  • 0 关注
  • 880 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信