Symfony 2 добавить Javascripts, только один запрос - PullRequest
4 голосов
/ 23 января 2012

У меня layout.html.twig с:

    {% block js %}
        {% javascripts 
            'Resources/public/js/jquery/jquery-1.7.1.min.js' 
            'Resources/public/js/jquery/jquery.namespace.js' 
            %}
            <script src="{{ asset_url }}" type="text/javascript"></script>
        {% endjavascripts %}
    {% endblock %}

И у меня есть index.html.twig с

{% extends "MichaelMikeBundle::layout.html.twig" %}
{% block js %}
    {{ parent() }}
    {% javascripts 
        '@MichaelStoreBundle/Resources/public/js/index.js' 
        'Resources/public/js/jqueryui/jquery.ui.core.js'
        'Resources/public/js/jqueryui/jquery.ui.widget.js'
        'Resources/public/js/jqueryui/jquery.ui.button.js'
    %}
    <script src="{{ asset_url }}" type="text/javascript"></script>
    {% endjavascripts %}
{% endblock %}

I Страница режима производства возвращает два файла js (дваЗапросы).Symfony2 объединяет два файла из макета и выводит как один запрос, и он делает то же самое для индекса - он объединяет 4 файла и выводит как другой запрос.

Мой вопрос: Возможно ли иметь макет и индексфайлы, как в моем примере, выводят все js как один запрос? Или хотя бы добавить javascripts из индексного файла в макет ...

Спасибо за любую помощь, ребята!

Ответы [ 2 ]

3 голосов
/ 24 января 2012

Вы должны удалить вызов на {{ parent() }}, скопировать определение родительского ресурса в шаблон и добавить туда дополнительные входные данные.

{% extends "MichaelMikeBundle::layout.html.twig" %}
{% block js %}
    {% javascripts 
        'Resources/public/js/jquery/jquery-1.7.1.min.js' 
        'Resources/public/js/jquery/jquery.namespace.js' 
        '@MichaelStoreBundle/Resources/public/js/index.js' 
        'Resources/public/js/jqueryui/jquery.ui.core.js'
        'Resources/public/js/jqueryui/jquery.ui.widget.js'
        'Resources/public/js/jqueryui/jquery.ui.button.js'
    %}
    <script src="{{ asset_url }}" type="text/javascript"></script>
    {% endjavascripts %}
{% endblock %}

Нет лучшей поддержки для этого, потому что этохорошая практика.Пользователь уже загрузил первые две записи, когда макет был впервые представлен.Имеет больше смысла устанавливать заголовки истечения срока давности в будущем, чем объединять эти Javascripts в дочерний шаблон.

3 голосов
/ 23 января 2012

Для вставки js-файлов в веточку я пишу:

{% block javascripts %}
    {{parent()}}    

    <script src="{{ asset('public/js/userprofile.js') }}" type="text/javascript"></script>  

{% endblock %}

public находится в каталоге Symfony / web /.

Это все, что вам нужно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...