2016-05-23 1 views
1

Hallo ich versuche, meine js mit Yui Filter aus asseticAssetic und Zweig Erbe

Ich habe einen ersten Zweig Layout (template.html.twig) mit einigen js assetics Erklärungen zu kombinieren:

{% 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%}

Dann versuche ich diesen Block in Vorlagen meiner childs außer Kraft zu setzen:

{% block javascripts %} 
{{ parent() }} 
{% javascripts 
    'bundles/comitiapp/js/comiti.cart.js' 
    filter='yui_js' 
%} 
<script type="text/javascript" src="{{ asset_url }}"></script> 
{% endjavascripts %} 

{% Endblock%}

Ich dachte, dass Assesse: Dump würde alle js in der gleichen Datei kombinieren, aber es produziert mehrere Dateien: 1 für template.html.twig und 1 pro Kind Vorlage. Ist das normales Verhalten? Auf der anderen Seite ist assetic: dump wirklich sehr langsam im lokalen Bereich. Wie beschleunigt man in dev env?

Antwort

1

Ja, es ist das normale Verhalten. Jedes {% javascripts %}-Tag gibt eine Javascript-Datei aus, {{ parent() }} gibt die JS-Datei aus, die von der übergeordneten Vorlage generiert wird, aber nicht mit dem untergeordneten Tag javascripts.

+0

wäre es ein besseres Komportment, um mit der übergeordneten Datei – Python

+0

zusammenzuführen Es gibt keine solche Sache, und ich glaube nicht, dass Sie es wünschen würden, wenn es gab. Dateien, die von 'Javascripts' generiert werden, werden zur Laufzeit live generiert und dann zwischengespeichert. Wenn sich die Liste der kompilierten Dateien von einer Seite zu einer anderen ändert, bricht dies jede Möglichkeit des Caching von Dateien und reduziert somit Ihre Leistungen. Warum brauchst du so viel, um nur 1 Datei zu haben? – Terenoth

0

Dies sollte das gewünschte Verhalten sein. Zwei separate Dateien sind besser:

Aufgrund des Browser-Caching wird die große JS-Datei einmal geladen und auf alle Seiten angewendet, während die Site-spezifischen Teile bei Bedarf hinzugefügt werden. Das ist der effizienteste Weg.