2016-12-02 3 views
0

Angenommen, ich habe die folgenden Zweig Vorlagen:Kombinieren javascripts aus mehreren Vorlagen mit Assetic

base.html.twig:

<html> 
    <body> 
    {% block javascripts %} 
     {% javascripts 
      '../app/Resources/js/jquery-2.2.4.min.js' 
      '../app/Resources/js/base.js' 
      filter='uglifyjs2' output='main.js' 
     %} 
      <script src="{{ asset_url }}" type="text/javascript"></script> 
     {% endjavascripts %} 
    {% endblock javascripts %} 
    </body> 
</html> 

page1.html.twig:

{% extends 'base.html.twig' %} 

{% block javascripts %} 
    {{ parent() }} 
    {% javascripts 
     '../app/Resources/js/page1_specific.js' 
     '../app/Resources/js/page1_other.js' 
     filter='uglifyjs2' output='page1.js' 
    %} 
     <script src="{{ asset_url }}" type="text/javascript"></script> 
    {% endjavascripts %} 
{% endblock javascripts %} 

Mit diesem Code erstellt die Vorlage page1 zwei JavaScript-Anfragen, eine für main.js und eine weitere für page1.js.

Ist es möglich, es anders zu schreiben, so würde ich es nur eine große js-Datei für jede endgültige Vorlage, einschließlich der Basis-Seite js und der page1 spezifischen js generieren generieren?

Antwort

1

Sie können in Ihrem config.yml die Basis js, wie dies erklären:

assetic: 
    assets: 
     base: 
     inputs: 
      - '@AppBundle/Resources/public/js/jquery-2.2.4.min.js' 
      - '@AppBundle/Resources/public/js/base.js' 

Und nennen Sie diese in Ihrem Javascript-Block:

{% javascripts 
    '@base' 
    '../app/Resources/js/page1_specific.js' 
    '../app/Resources/js/page1_other.js' 
    filter='uglifyjs2' output='page1.js' 
%} 

Sie können info here mehr.

Verwandte Themen