2011-09-20 37 views
21

當在軌使用3.1資產管道,它會創建一個默認application.js資產管道中缺省require_tree背後的原因是什麼?

//= require jquery 
//= require jquery_ujs 
//= require_tree . 

,但我什麼時候需要包括所有我的javascript的?在大多數情況下,我們對不同的控制器/視圖使用不同的javascrips?

+2

我幾乎從來沒有嘗試如此精細地分割我的JavaScript;確保每個頁面都有必要的精確文件是不值得的。縮小的gzipped JavaScript大小非常小。 –

+3

但是怎麼樣css? CSS沒有命名空間(不像javascript),不需要''require_tree .'容易產生衝突? –

+1

我幾乎從來沒有發生過大量的CSS衝突,但我認爲這可能是一個問題,當然 - 但在這一點上,你不再需要默認行爲,所以刪除默認配置似乎是合理的。記住 - Rails是自以爲是的,並不是每個人都有相同的看法:) –

回答

18

require_tree .將導致您擁有一個文件(本例中爲application.js),其中包含文件夾中的所有腳本。事實上,瀏覽器只會從Web服務器上拉取該文件一次(除非您執行Ctrl + R刷新或文件緩存屬性發生更改),這會使應用程序對後續請求的行爲更快。

除非當然你有一個應用程序有很大的變化和巨大的腳本和一個典型的用戶不會移動太多,他不會需要大多數這些。這顯然不是很常見的情況。

獲取更多詳細信息。看看這裏 http://guides.rubyonrails.org/asset_pipeline.html

+0

「require_tree。將導致您擁有一個文件(在這種情況下爲application.js),其中包含文件夾中的所有腳本。」什麼文件夾? –

+0

@MarkKramer,放置application.js的文件夾 – thanikkal

2

瀏覽器加載application.js一次,然後從緩存中獲取它。

相關問題