我有一个 CSS文件,其中包含一些路径(图像、字体等等)。
我的路径结构是这样的:
...
+-src/
| +-MyCompany/
| +-MyBundle/
| +-Resources/
| +-assets/
| +-css/
| +-stylesheets...
+-web/
| +-images/
| +-images...
...
我想在样式表中引用我的图像。
我将 CSS 文件中的所有路径都更改为绝对路径。这不是解决方案,因为应用程序应该(也必须)这样做也在子目录中工作。
与 filter="cssrewrite"
一起使用 Assetic。
因此,我将 CSS 文件中的所有路径都更改为
url("../../../../../../web/images/myimage.png")
表示从 resources 目录到 /web/images
目录的实际路径。这不起作用,因为 cssrewrite 产生以下代码:
url("../../Resources/assets/")
这显然是错误的道路。
在 assetic:dump
之后,这条路径被创建,但仍然是错误的:
url("../../../web/images/myimage.png")
资产阶级的细枝密码:
{% 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
。
是否有更好和可行的解决方案?