Проблема
У меня есть файл 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
, что приводит к a NotFoundHttpException
.
Есть ли лучшее и эффективное решение?