Пришло время переключиться с dev на prod в моем приложении, и я пытаюсь исправить все неработающие ссылки в файлах css и т. Д. И теперь я застрял в одной части …
Итак, у меня есть файл с именем optimized.less
, Которые имеют это:
#srchFld {background: url(../img/search.png) no-repeat right center;border-radius: 0;padding: 4px;margin: 0;line-height: 16px;}
При выполнении php app/console assets:install
, Все в порядке, файл создан.
После этого делаем php app/console assetic:dump --env=prod --no-debug
, Создает файл CSS для Prod. Однако в файле он сгенерировал это:
#srchFld {background: url(../../bundles/mpshop/img/search.png) no-repeat right center;border-radius: 0;padding: 4px;margin: 0;line-height: 16px;}
Теперь я точно знаю, что сгенерированная ссылка неверна .. Реальная проблема в том, что она генерирует URL ссылки откуда-то еще ..
Например:
если я удалю URL из моего публичного файла CSS:
#srchFld {background: url() no-repeat right center;border-radius: 0;padding: 4px;margin: 0;line-height: 16px;}
Когда я дам дамп, он все равно генерирует тот же самый URL, что и раньше … Почему? Я удаляю вручную весь свой кеш и тд. И использую phpstorm find in path
вариант нет других файлов, которые используют тот же URL-адрес изображения …
Что здесь происходит?
Я думаю, это связано с тем, как вы собираете свои активы в своем шаблоне.
Чтобы включить сборку для правильной сборки ваших URL-адресов в CSS-файлах, вам нужно использовать фильтр cssrewrite, как описано в документация Symfony
Пример:
{% stylesheets
'bundles/mybundle/css/main.css'
'bundles/mybundle/css/another.css'
filter='cssrewrite'%}
<link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}
Других решений пока нет …