2012-01-10 117 views
0

此刻我的application.js文件看起來像這樣:資產管道的javascript文件結構

//= require_tree ./vendor 
//= require_directory ./lib 

我也有個人的看法,例如個人的JavaScript文件home.js,user.js等

有人把這些文件放在application.js中嗎?如果是的話,他們如何激活它們?我的大部分JavaScript都是從jQuery ready事件處理程序中執行的$(function(){ });

很明顯,如果它們全都在同一個文件中,這是行不通的。如何將這些文件縮小並訪問正確的就緒事件(如果它們都在同一個文件中)?

任何幫助或建議非常感謝。

回答

0

有多個jQuery文檔準備好處理程序是好的,因爲您不應該關心它們之間的順序。儘管如此,您仍然需要在嘗試附加任何處理程序之前檢查它們所處的元素是否存在。

例如,在home.js,你可能會有諸如

if ($("#home_div").length) { // do some stuff on the home page } 

這樣做是不是與編譯的方法分手了你的JS,只有在一些網頁上投放一些作品,因爲更好的用戶只必須下載JS一次。我認爲默認的rails 3.1配置應該縮小和連接生產中的所有JS,但不能在dev中。如果你想手動啓用,

config.assets.compress = true # compress js into one file 
config.assets.js_compressor = :uglifier # minify the JS (need the uglifier gem) 
config.assets.digest = true # append hashes to filenames so you can set far-expiry headers for caching 

一些更多的信息,請查看「自定義管段」的文檔http://guides.rubyonrails.org/asset_pipeline.html#customizing-the-pipeline

和此相關的問題

How to properly work with jQuery in Rails 3.1 asset pipeline?