У меня есть файл 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")
Twig-код Assetic:
{% stylesheets
'@MyCompanyMyBundle/Resources/assets/css/*.css'
filter="cssrewrite"
%}
{% 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
.
Есть ли лучшее и работающее решение?