你好,我试着把我的js和assetic的yui filter结合起来。
我有一个带有一些js assetics声明的第一个小枝布局(template.html.twig):
{% block javascripts %}
{% javascripts
'bundles/comitiapp/js/jquery.remodal.min.js'
'bundles/comitiapp/js/ajax/comiti.ajax.search.js'
'bundles/comitiapp/js/init.js'
'bundles/comitiapp/js/external/Chart.min.js'
'bundles/comitiapp/js/charts.js'
'bundles/comitiapp/js/comiti.villes-france.js'
'bundles/comitiapp/js/external/jquery.validate.min.js'
'bundles/comitiapp/js/comiti.form-validation.js'
'//cdn.datatables.net/1.10.11/js/jquery.dataTables.js'
'//cdn.datatables.net/buttons/1.1.2/js/dataTables.buttons.min.js'
'//cdn.datatables.net/buttons/1.1.2/js/buttons.flash.min.js'
'//cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.min.js'
'//cdn.rawgit.com/bpampuch/pdfmake/0.1.18/build/pdfmake.min.js'
'//cdn.rawgit.com/bpampuch/pdfmake/0.1.18/build/vfs_fonts.js'
'//cdn.datatables.net/buttons/1.1.2/js/buttons.html5.min.js'
'//cdn.datatables.net/buttons/1.1.2/js/buttons.print.min.js'
filter='yui_js'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}{% endblock %}
然后我尝试在我的childs模板中覆盖这个代码块:
{% block javascripts %}
{{ parent() }}
{% javascripts
'bundles/comitiapp/js/comiti.cart.js'
filter='yui_js'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}{% endblock %}
我认为assetic:dump会将所有的js组合到同一个文件中,但它会生成多个文件:一个用于template.html.twig,一个用于每个子模板。这是正常行为吗?另一方面,assetic:dump在本地非常慢。如何在dev env中加速?
发布于 2016-05-23 22:04:53
是的,这是正常的行为。每个{% javascripts %}标签将输出一个Javascript文件,{{ parent() }}输出由父模板生成的JS文件,但不与子javascripts标签合并。
发布于 2017-03-01 09:17:17
这应该是你想要的行为。两个单独的文件更好:
由于使用了浏览器缓存,大型.js文件只需加载一次并应用于所有页面,而特定于站点的部分则在需要时添加。这是最有效的方法。
https://stackoverflow.com/questions/37392564
复制相似问题