2012-08-01 28 views
3

asset_pipeline guide提到使用require_tree爲JavaScript和樣式表文件遞歸加載各個文件類型的每個文件,但沒有提到這樣做的任何優點或缺點。例如,我的application.js文件中有require_tree對我有什麼好處?在一種情況下,它阻止了我手動爲各種頁面包含單獨的JavaScript文件。另一方面,在很多情況下,我忘記我正在使用require_tree指令,並且多次意外加載庫。Rails 3應該使用require_tree嗎?

在甚至沒有使用它們的頁面加載JavaScript /樣式表文件時,是否會有與性能相關的問題(如使用require_tree時會出現這種情況)?

回答

3

如果您使用require_tree,那絕對沒有理由手動要求您自己的文件。你不應該這樣做,但是如果你這樣做,它不會受到傷害,因爲Rails足夠聰明,不需要兩次相同的文件。

但是,您應該要求「供應商」或在寶石中的文件。 「require_tree」不會自動需要這些文件。它只需要位於app/assets/{type}中的文件。

+0

不確定你使用的Rails版本足夠聰明,可以確定Javascript庫已經被加載,但是3.1.3當然不會:/ – Noz 2012-08-02 22:46:46

+0

我剛剛在3.2.3中檢查過,我確認文件不需要兩次。 Rails足夠聰明地發現,在使用require_tree解析目錄時,您已經手動需要該文件。 – 2012-08-06 01:33:48