2011-06-10 43 views
0

我剛剛升級到Rails 3.1,並且遇到了使用新資產管道加載Javascript的問題。Ruby on Rails 3.1 RC1 Javascript資產流水線問題

我抄js文件(這兩個文件自己和.min變形)到我的/應用/資產/ JavaScript的目錄,我的application.js清單如下:

//= require jquery 
//= require jquery_ujs 
//= require jquery-easytabs 
//= require jquery-hashchange.min 
//= require_tree . 

但這似乎沒有工作; Easytabs未正確加載。奇怪的是,當我在編譯的application.js文件中查看控制檯時,我可以看到Easytabs代碼,但它不起作用。

我發現如果我將代碼直接粘貼到application.js文件中,它可以按預期工作,所以我知道該腳本正在工作。但是,這不是application.js文件的預期用途。

爲了確保js文件的正確加載,我將不勝感激任何關於下一步要去哪裏的指導。

謝謝!

+0

我已經在這裏回答了一個類似的問題:http://stackoverflow.com/questions/6149961/rails-3-1-asset-pipeline-and-manually-ordered-javascript-requires/8687169#8687169 – justingordon 2012-01-01 04:08:00

回答

0

我設法弄到了這一點 - 它似乎是要求的順序是按字母順序的,所以jquery_easytabs在jquery_ujs之前被編譯。我通過重命名jquery_zeasytabs解決了這個問題 - 不是最乾淨的,但它確實有效。

0

嘗試將所有插件(如easytabs)移動到供應商目錄中。

vendor/assets/javascripts/

那麼你的application.js文件改成這樣:

//= require jquery 
//= require jquery_ujs 
//= require_tree ../../../vendor/assets/javascripts 
//= require_tree . 

你應該(如果你AKS我),你已經在你的應用程序對特定的控制器只寫地點代碼/資產/ javascripts目錄,其他一切,如插件應該在供應商目錄中。