Assetic和树枝继承
问题描述:
你好我尝试我的JS使用YUI过滤器从asseticAssetic和树枝继承
结合我有一个第一根树枝布局(template.html.twig)与一些JS assetics声明:
{% 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 %}
{ %末端嵌段%}
然后我尝试在我孩子的模板,以覆盖此块:
{% block javascripts %}
{{ parent() }}
{% javascripts
'bundles/comitiapp/js/comiti.cart.js'
filter='yui_js'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock%}
我认为asset:dump会将所有js合并到同一个文件中,但它会生成多个文件:1为template.html.twig,每个子模板为1。 这是正常的行为吗?另一方面,资产:转储在本地真的很慢。如何加快开发环境?
答
是的,这是正常的behviour。每个{% javascripts %}
标记将输出一个Javascript文件,{{ parent() }}
输出由父模板生成的JS文件,但不会与子标记javascripts
合并。
答
这应该是你想要的行为。两个单独的文件更好:
由于浏览器缓存,大型.js文件加载一次并应用于所有页面,而特定于站点的部分则在需要时添加。这是最有效的方式。
它会是一个更好的方法来合并qth父文件 – Python
没有这样的事情,我不认为你会想要它,如果有的话。 'javascripts'生成的文件在运行时生成,然后被缓存。如果编译文件列表从一个页面更改为另一个页面,则会打破文件缓存的任何可能性,从而降低您的性能。为什么你需要这么多只有1个文件? – Terenoth