Symfony2 Assetic Twig Template JavaScript继承

我的问题:

我有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}

解决方法

我发现了这个问题.在create.html.twig中,我在{%block content%}内部定义了我的{%block javascripts%}内容,所以我假设Twig在内容块中渲染javascripts块的输出.

在{%block content%}块外移动{%block javascripts%}内容可以解决问题.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...