Я включаю свой CSS со следующим кодом:
{% stylesheets 'bundles/majorproductionssewingdivasite/css/*.css' filter='cssrewrite' %} <link rel="stylesheet" type="text/css" href="{{ asset_url }}" /> {% endstylesheets %}
В dev это позволяет мне без проблем использовать графические спрайты. Полученный URL-адрес моего спрайта:
http://localhost/diva/web/bundles/majorproductionssewingdivasite/images/diva-sprites.jpg
Но, в prod, он отображается на:
http://localhost/diva/bundles/majorproductionssewingdivasite/images/diva-sprites.jpg
Обратите внимание на отсутствие веб-каталога.
Сгенерированный код в файле CSS так же, как и должно быть, и все мои CSS (как фрагменты dev, так и финализированные дампы prod) находятся в web/css/
. Любые идеи относительно того, почему среда prod пропускает веб-каталог?
EDIT: странно, что оба dev и prod генерируют один и тот же URL-адрес в самом CSS:
url('../../bundles/majorproductionssewingdivasite/images/diva-sprites.jpg')
Решение состоит в том, чтобы сбрасывать активы в среде prod:
$ app/console assetic:dump --env=prod
Также не забудьте настроить configure assetic в вашем config_prod.yml, как показано ниже:
assetic: use_controller: false
Изменить: как сказано в документах Symfony (фактически в главе упоминается среда dev): сообщите Symfony о том, что вы перестанете пытаться обрабатывать эти файлы динамически