Я решил это с помощью htaccess:
Мои активы хранятся в src / Datacode / BudgetBundle / Resources / public / (css | img | js), а для параметра выходного сигнала монтирования задано значение записи в: bundles / datacodebudget / css / styles.css (в веб-каталоге)
В моем CSS я использую относительный путь ../ для ссылки на изображения.
Вот правило .htaccess:
# Make image path work on dev
# i.e. /app_dev.php/bundles/datacodebudget/img/glyphicons-halflings-white.png rewrites to /bundles/datacodebudget/img/glyphicons-halflings-white.png
RewriteRule ^app_dev\.php/(.*)/(.*)/img/(.*)$ /$1/$2/img/$3 [L]
Мой css загружается следующим образом:
{% stylesheets
'@DatacodeBudgetBundle/Resources/public/css/bootstrap.css'
'@DatacodeBudgetBundle/Resources/public/css/bootstrap-responsive.css'
'@DatacodeBudgetBundle/Resources/public/css/styles.css'
'@DatacodeBudgetBundle/Resources/public/css/chosen.css' output="bundles/datacodebudget/css/styles.css"
%}
<link href="{{ asset_url }}" rel="stylesheet" type="text/css" />
{% endstylesheets %}
В моем файле config.yml у меня есть:
assetic:
use_controller: true
Что (без перезаписи htaccess) приводит к тому, что изображения не загружаются, поскольку относительный путь к изображению находится по адресу app_dev.php / bundles / datacodebudget / img / someimage.jpg. Использование фильтра cssrewrite также не работает, потому что тогда он переписывает ../img в ../../../../Resources/public/img/, который преобразуется в Resources / public / img.
При использовании метода htaccess образы загружаются нормально, и мне нужно только запустить сборку: dump / assets: install, когда я добавляю новые образы или хочу отправить изменения в производство.