Моя проблема:
У меня есть 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
) и включающий all скрипты, определенные в шаблонах выше него, он делает следующее:
- Сбрасывает теги
<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}