我有3个模板:
> main.html.twig(主布局文件)
> layout.html.twig(一个捆绑包特定的布局覆盖,其中包含一些捆绑特定的JS标签)
> create.html.twig(一个特定于页面的模板文件,其中还包含一些特定于页面的JS标签)
我在基本布局(main.html.twig)中定义了一个名为“javascript”的块,然后在layout.html.twig中覆盖它(但调用{{parent()}},这样可以正常工作,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.ww)中的JavaScript块,而是包括上面模板中定义的所有脚本,它执行以下操作:
>转储< script>在输出中间的标签(这会导致错误,因为在我的main.html.twig文件中,我只包括在HTML标记结尾处的jQuery库
>然后它也会把脚本与其他的其他人一样(就像我所期望的那样)
我不知道是什么导致脚本被转储在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:
今天早上我一直在看这个问题,看起来好像对样式表做了同样的事情.我试图在我的layout.html.twig中定义一个名为pagescripts的新块,然后在我的create.html.twig中使用该块,但是这样做的结果是相同的,它似乎在将脚本和样式表转储到任何地方
{% block pagescripts %} (scripts here) {% endblock}