Вопрос
Я использую Assity и Twig в веб -приложении. Я не использую структуру Symfony2.
Структура проекта выглядит так
приложение
- стили
- картинки
www
- CSS
- картинки
У меня есть эта разметка, используя бирку с таблицами Assyting Styles в одном из моих шаблонов:
{% stylesheets 'style/a.css' filter='cssrewrite' output='css/*'%}
<link href="{{ asset_url }}" rel='stylesheet' type='text/css'>
{% endstylesheets %}
В настоящее время приложение размещено в http: // localhost/myapp/ и можно получить доступ к нему через http: // localhost/myapp/www
Я написал полоску сброса, которая собирает мои активы и сбрасывает их в каталоги под www
.
В моем CSS я ссылаюсь на свои изображения, используя абсолютные пути (которые работает):
#myelement{
background: url('/app/www/images/b.png') no-repeat;
}
Если я использую относительный путь (с Cssrewrite Filter), URL не переписан:
#myelement{
background: url('images/b.png') no-repeat;
}
Я хотел бы использовать свой URL как просто images/b.png
и затем позвольте активационному матобу определить полный путь.
Я включил фильтр cssrewrite, но, похоже, он ничего не делает. Как я могу предоставить относительный путь в моем CSS и сделать Cssrewrite переписать его на абсолютный путь?
Решение
Оказывается, мне не нужно было использовать Cssrewrite.
Поскольку CSS загружает изображения по сравнению с файлом CSS, я просто сделал ../images/image.png
. Анкет Это гораздо более простое решение, но я до сих пор не решал, как работает Cssrewrite.
Другие советы
Я обнаружил, что абсолютные пути не переписываются. url ('/images/foo.png') не переписывает. ... но ... url ('../ Images/foo.png') делает ... Я не пробовал:
url ('./ Images/foo.png') - но я ожидаю, что это переписать.
У меня было много разочарования в этом, но я думаю, что задним числом это имеет смысл.
Документация на сайте Symfony2 говорит об этом ... но его легко упустить из виду.