Как включить CSS из папки ресурсов в Symfony 2 - PullRequest
5 голосов
/ 12 января 2012

Я хочу, чтобы CSS находился в

app/Resources/FOSUserbundle/css

Как я могу включить это в свой шаблон веточки

Причина, по которой я ставлю CSS, заключается в том, что всев этой папке переопределены шаблоны FOSUser.Поэтому я хочу сохранить изображения css, js там, чтобы при необходимости использовать их на другом веб-сайте я просто скопировал эту папку

Ответы [ 3 ]

6 голосов
/ 12 января 2012

То, что вы сделали, совершенно нормально.

Просто сделайте следующее: -

$ app/console assets:install web

Он установит ресурсы в общедоступный «веб-каталог», где технически должны быть ресурсы, для использования с вашими шаблонами Twig.

Затем можно использовать активы в шаблонах 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 %}
6 голосов
/ 12 января 2012

Я не совсем уверен, как бы вы включили это в свои шаблоны TWIG, но ...

1) Я помещаю используемые мной ресурсы в несколько пакетов / проектов в каталог web /. Тогда вы можете ссылаться тогда, как это:

{% 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 %}
3 голосов
/ 11 декабря 2014

Хотя вопрос предлагает и переопределить регистр, он также запрашивает случай, когда css или js находятся в общей папке, вне структуры пакета.

Один из ответов - использовать доступные переменные ветки.Например, если у меня есть один файл 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 %}

Также не забудьте выполнить команду Сборка: Дамп , так что Symfony знает, что он должен был опубликовать css в папке web / css со всеми другими файлами.

...