我有一个layout.html.twig:
{% block js %}
{% javascripts
'Resources/public/js/jquery/jquery-1.7.1.min.js'
'Resources/public/js/jquery/jquery.namespace.js'
%}
<script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}
{% endblock %}
我有
的index.html.twig{% extends "MichaelMikeBundle::layout.html.twig" %}
{% block js %}
{{ parent() }}
{% javascripts
'@MichaelStoreBundle/Resources/public/js/index.js'
'Resources/public/js/jqueryui/jquery.ui.core.js'
'Resources/public/js/jqueryui/jquery.ui.widget.js'
'Resources/public/js/jqueryui/jquery.ui.button.js'
%}
<script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}
{% endblock %}
我的生产模式页面返回两个js文件(两个请求)。 Symfony2将布局和输出中的两个文件合并为一个请求,它对索引也是如此 - 它将4个文件和输出合并为另一个请求。
我的问题是:是否可以在我的示例中输出布局和索引文件将所有js作为一个请求输出?或者至少将索引文件中的javascripts附加到布局中...
感谢您的帮助!
答案 0 :(得分:3)
对于在树枝中插入js文件,我写道:
{% block javascripts %}
{{parent()}}
<script src="{{ asset('public/js/userprofile.js') }}" type="text/javascript"></script>
{% endblock %}
public位于Symfony / web /目录中。
这就是你想要的吗?
答案 1 :(得分:3)
您必须删除对{{ parent() }}
的调用,将父资产定义复制到模板,然后在那里添加更多输入。
{% extends "MichaelMikeBundle::layout.html.twig" %}
{% block js %}
{% javascripts
'Resources/public/js/jquery/jquery-1.7.1.min.js'
'Resources/public/js/jquery/jquery.namespace.js'
'@MichaelStoreBundle/Resources/public/js/index.js'
'Resources/public/js/jqueryui/jquery.ui.core.js'
'Resources/public/js/jqueryui/jquery.ui.widget.js'
'Resources/public/js/jqueryui/jquery.ui.button.js'
%}
<script src="{{ asset_url }}" type="text/javascript"></script>
{% endjavascripts %}
{% endblock %}
没有更好的支持,因为这不是一个好习惯。首次呈现布局时,用户已经下载了前两个条目。设置远期到期的标头比将这些Javascripts合并到子模板更有意义。