2016-12-02 43 views
0

假設我有以下的樹枝模板:合併多個模板的JavaScript與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 %} 

使用此代碼,page1模板將發出兩個javascript請求,一個用於main.js,另一個用於page1.js

是否有可能以不同的方式寫它,所以我只會生成一個特定於每個最終模板的大js文件,包括基本頁面js和特定的js?

回答

1

您可以在config.yml申報基地JS,就像這樣:

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

而且在你的JavaScript塊稱之爲:

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

你可以找到更多info here