相关疑难解决方法(0)

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

问题

我有一个CSS文件,其中包含一些路径(图像,字体等url(..)).

我的路径结构是这样的:

...
+-src/
| +-MyCompany/
|   +-MyBundle/
|     +-Resources/
|       +-assets/
|         +-css/
|           +-stylesheets...
+-web/
| +-images/
|   +-images...
...
Run Code Online (Sandbox Code Playgroud)

我想在样式表中引用我的图像.

第一解决方案

我将CSS文件中的所有路径都更改为绝对路径.这不是解决方案,因为应用程序应该(并且必须!)也在子目录中工作.

二解决方案

使用Assetic filter="cssrewrite".

所以我将CSS文件中的所有路径都更改为

url("../../../../../../web/images/myimage.png")
Run Code Online (Sandbox Code Playgroud)

表示从我的资源目录到/web/images目录的实际路径.这不起作用,因为cssrewrite生成以下代码:

url("../../Resources/assets/")
Run Code Online (Sandbox Code Playgroud)

这显然是错误的道路.

assetic:dump创建此路径后,仍然存在错误:

url("../../../web/images/myimage.png")
Run Code Online (Sandbox Code Playgroud)

Assetic的枝条代码:

{% stylesheets
    '@MyCompanyMyBundle/Resources/assets/css/*.css'
    filter="cssrewrite"
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
Run Code Online (Sandbox Code Playgroud)

当前(第三)解决方案

由于所有CSS文件最终都存在/web/css/stylexyz.css,我将CSS文件中的所有路径都更改为相对:

url("../images/myimage.png")
Run Code Online (Sandbox Code Playgroud)

除了在dev环境中之外,这个(坏)解决方案是有效的:CSS路径是/app_dev.php/css/stylexyz.css因此得到的图像路径/app_dev.php/images/myimage.png,这导致了一个NotFoundHttpException.

有更好的工作解决方案吗?

css php symfony assetic

100
推荐指数
4
解决办法
11万
查看次数

标签 统计

assetic ×1

css ×1

php ×1

symfony ×1