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合并。

+0

它会是一个更好的方法来合并qth父文件 – Python

+0

没有这样的事情,我不认为你会想要它,如果有的话。 'javascripts'生成的文件在运行时生成,然后被缓存。如果编译文件列表从一个页面更改为另一个页面,则会打破文件缓存的任何可能性,从而降低您的性能。为什么你需要这么多只有1个文件? – Terenoth

这应该是你想要的行为。两个单独的文件更好:

由于浏览器缓存,大型.js文件加载一次并应用于所有页面,而特定于站点的部分则在需要时添加。这是最有效的方式。