私の問題:
私は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
のスクリプトを含める代わりに、次のことを行います。
- 出力の途中でタグをダンプします (私のファイルでは、HTML マークアップの最後に jQuery ライブラリのみを含めている
<script>
ため、エラーが発生します)main.html.twig
- 次に、残りのスクリプトと一緒にスクリプトもダンプします(私が期待するように)
スクリプトがテンプレートの途中でダンプされる原因がわかりません。また、スクリプトがcreate.html.twig
画面に 2 回ダンプされる理由についても混乱しています (1 回は作成の途中で、次に 1 回はテンプレートの途中で)。と からの残りのすべてのスクリプト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
myで呼び出される新しいブロックを定義してからlayout.html.twig
、そのブロックを my で使用しようとしましcreate.html.twig
たが、これは同じ結果になりました。
{% block pagescripts %}
(scripts here)
{% endblock}