2011-11-06 62 views
3

我在Symfony 2上使用資產,並且我通過YUI壓縮了所有CSS和JS文件。 ALL工作完美,但在prod環境中,我有多個調用來加載每個壓縮文件。事實上,我認爲資產可以將所有CSS文件(和JS文件)合併爲一個獨特的文件(一個用於CSS,另一個用於JS),並且對於每個頁面,這是可能的嗎?在Symfony 2上使用Assetic在Symfony 2上合併文件只能調用一次所有CSS文件

我沒有找到有關它的文檔... 有一個想法嗎? 謝謝!

回答

4

documentation中描述的那樣,您也可以將多個文件組合成一個文件。這有助於減少HTTP請求的數量,這對於前端性能非常有用。

你只需要使用這個語法:

{% javascripts 
    '@AcmeFooBundle/Resources/public/js/*' 
    '@AcmeBarBundle/Resources/public/js/form.js' 
    '@AcmeBarBundle/Resources/public/js/calendar.js' 
%} 
<script src="{{ asset_url }}"></script> 
{% endjavascripts %} 
+0

其實我這樣做,但我忘了「的umask(0000)」在我的app.php文件,並只爲督促環境清理緩存,讓我不得不多次調用: s現在,它完美的PHP應用程序/控制檯資產後:dump --env = prod和php應用程序/控制檯緩存:清除--env = prod --no-debug,謝謝! – Sybio

2

對於開發環境CSS文件合併成一個

php app/console cache:clear --env=dev --no-debug 

要查看合併後的文件服務時,頁面被請求

// app_dev.php 
$kernel = new AppKernel('dev', false); 
// Setting the second parameter to false turns of debugging 

確保您合併資產

{% javascripts 
    '@AcmeFooBundle/Resources/public/js/*' 
    '@AcmeBarBundle/Resources/public/js/form.js' 
    '@AcmeBarBundle/Resources/public/js/calendar.js' 
%} 
<script src="{{ asset_url }}"></script> 
{% endjavascripts %} 

同樣遵循生產環境