问题
我有一个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。
有更好的可行解决方案吗?
精慕HU