2015-10-14 50 views
0

我知道我可以用下面的例子輸出一個自定義文件,但是如果我想要它到js/compile/<randomfilename>.js?我無法找到任何文件解釋這一點。我知道如果我們不輸出輸出參數,它只會在js/下創建一個隨機命名的JS文件。指定不同的輸出目錄,使用隨機文件名-UglifyJS和Symfony2

{% javascripts 
    'vendor/bower_components/angular/angular.min.js' 
    'https://cdn.ywxi.net/js/1.js' 
    'vendor/bower_components/jquery/dist/jquery.min.js' 
    'js/app/*' 
    'js/app/services/*' 
    'js/app/directives/*' 
    'js/app/controllers/*' 
    filter='?uglifyjs2' 
    output='js/app.js' 
%} 
    <script src="{{ asset_url }}"></script> 
{% endjavascripts %} 
+0

我不能直接回答,而是作爲一種解決方法,你可以最終保持'輸出='JS /使用編譯/ app.js''和胸圍緩存['assets_version'(HTTP:// symfony的。 COM/DOC /電流/參考/配置/ framework.html#REF-框架資產的版本)。 –

+0

我想通了 - 檢查下面的答案。 – xil3

回答

0

我最終弄明白了。祕訣是通過Assetic進行設置。

assetic: 
    debug:   "%kernel.debug%" 
    use_controller: false 
    node: "%node_path%" 
    write_to: %kernel.root_dir%/../web/static/ 

添加write_to行做到了。所以這些文件現在被寫入static/。但是還有另一個改變,因爲這實際上並沒有改變asset_url顯示的內容,只是資產寫入生成文件的地方(有點傻,我知道)。

我不得不添加配置的該位,以及:

framework: 
    templating: 
     packages: 
      assetic: 
       base_urls: static/ 

,創建一個新的包叫做assetic,它定義了base_urls。現在我們必須告訴它使用該軟件包,並且還要刪除輸出。

{% javascripts package='assetic' 
    'vendor/bower_components/angular/angular.min.js' 
    'https://cdn.ywxi.net/js/1.js' 
    'vendor/bower_components/jquery/dist/jquery.min.js' 
    'js/app/*' 
    'js/app/services/*' 
    'js/app/directives/*' 
    'js/app/controllers/*' 
    filter='?uglifyjs2' 
%} 
    <script src="{{ asset_url }}"></script> 
{% endjavascripts %} 
相關問題