Моя проблема:
У меня есть 3 шаблона:
main.html.twig
(основной файл макета) layout.html.twig
(переопределение макета для конкретного пакета, котороесодержит некоторые специфичные для комплекта теги JS) create.html.twig
(файл шаблона для конкретной страницы, который также содержит некоторые специфичные для страницы теги JS)
Я определяю блок под названием 'javascript' вмой базовый макет (main.html.twig
), затем переопределяя его (но вызывая {{ parent() }}
в layout.html.twig
. Это нормально работает, и теги JS из основного файла шаблона все еще включены над тегами layout.html.twig
.
Затем я делаю то же самое в файле create.html.twig
, переопределяя блок следующим образом:
{% block javascripts %}
{{ parent() }}
{% javascripts '@BundleName/Resources/public/js/application.album.uploader.js'
'@BundleName/Resources/public/js/jquery.uploadify.js'
'@BundleName/Resources/public/js/swfuploadify.js' filter='?yui_js' %}
<script src='{{ asset_url }}' type='text/javascript'></script>
{% endjavascripts %}
{% endblock %}
На этом этапе вместо просто переопределения блока javascript в родительском (layout.html.twig
)и включая все сценарии, определенные в шаблонах над ним, он выполняет следующие действия:
- Сбрасывает теги
<script>
в середине вывода (что вызывает ошибку,потому что в моем файле main.html.twig
я включаю только библиотеку jQueryконец HTML-разметки - Затем он также выводит сценарии вместе с остальными (как я и ожидал)
Я не уверен, что вызываетсценарии, которые должны быть сброшены в середине шаблона create.html.twig
, и я также не понимаю, почему они выводятся на экран дважды (один раз в середине процесса создания, а затем один раз внизу вместе со всемиостальные мои сценарии из main.html.twig
и layout.html.twig
.
У кого-нибудь есть идеи?Дайте мне знать, если что-то неясно или я могу предоставить дополнительную информацию.
РЕДАКТИРОВАТЬ:
Содержимое файла ниже ...
main.html.twig: https://gist.github.com/7f29353eaca0947528ce
layout.html.twig: https://gist.github.com/734947e9118b7765715e
create.html.twig: https://gist.github.com/c60c8d5c61e00ff86912
РЕДАКТИРОВАТЬ 2:
Я имеюЭтим утром я снова смотрел на проблему, и похоже, что он делает то же самое для таблиц стилей.Я попытался определить новый блок с именем pagescripts
в моем layout.html.twig
и затем использовать блок в моем create.html.twig
, но это дало тот же результат, просто кажется, что дамп скриптов и таблиц стилей везде, где я использую
{% block pagescripts %}
(scripts here)
{% endblock}