Как включить css из папки ресурсов в symfony 2
Я использую css, расположенный в
app/Resources/FOSUserbundle/css
Как я могу включить это в свой шаблон ветки
Причина, по которой я помещаю css, заключается в том, что все мои переопределенные шаблоны FOSUser находятся в этой папке. Поэтому я хочу сохранить все изображения css, js, чтобы, если мне нужно будет использовать их на другом веб-сайте, я просто скопировал эту папку
3 answers
Я не совсем уверен, как бы вы включили это в свои шаблоны веток, но...
1) Я помещаю ресурсы, которые я использую, в несколько пакетов/проектов в веб-каталоге/. Тогда вы можете ссылаться на это следующим образом:
{% stylesheets 'css/styles.css' %}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}
2) Если вам все равно нужно переопределить FOSUserBundle, вы можете поместить ресурсы в наследующий пакет, сославшись на них следующим образом:
{% javascripts '@YourBundle/Resources/public/js/scripts.js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
То, что вы сделали, совершенно правильно.
Просто сделайте следующее: -
$ app/console assets:install web
Он установит ресурсы в общедоступный каталог "веб", где технически должны находиться ресурсы, для использования с вашими шаблонами Twig.
Затем ресурсы можно использовать в шаблонах веток следующим образом: -
{% block stylesheets %}
<link href="{{ asset('/css/main.css') }}" type="text/css" rel="stylesheet" />
{% endblock %}
{% block javascripts %}
<script src="{{ asset('/js/main.js') }}" type="text/javascript"></script>
{% endblock %}
Хотя вопрос предполагает и переопределяет регистр, он также подходит для случая, когда css или js находятся в общей папке, вдали от структуры пакета.
Один из ответов заключается в использовании доступных переменных twig. Например, если у меня есть один файл css, расположенный здесь
app/Resources/views/clientSite/customFolder/css/mycss.css
Я могу загрузить в любой шаблон, используя что-то вроде этого (обратите внимание, что пример переопределяет полный блок таблиц стилей, но не требуется, тег ветки таблицы стилей можно добавить в любой блок):
{% block stylesheets %}
{{ parent() }}
{% stylesheets '%kernel.root_dir%/Resources/views/clientSite/customFolder/css/mycss.css'
%}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
Также не забудьте выполнить команду assetic:dump, чтобы symfony знала, что ей пришлось опубликовать css в папке web/css со всеми остальными файлами.