Путь к ресурсам в файлах CSS в Symfony 2

Проблема

У меня есть файл 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 .

Есть ли лучшее и работающее решение?

100
задан apfelbox 11 August 2014 в 18:33
поделиться