2011-05-04 132 views

回答

41

的路徑向所有的引擎的資產文件夾自動加載。

默認情況下,資產本身並未加載。這是可以理解的,因爲加載是通過require_tree .來完成的,加載當前文件夾(即主應用程序資產的文件夾)中的所有css/js,但沒有提及引擎資產。

簡單的解決方案是要求用戶在application.js/css或任何需要的地方要求js/css。由於路徑加載正確,用戶只需要指定資產的名稱(我建議使用引擎的名稱)。例如:

追加到main_app/app/assets/javascripts/application.js

//= require your_engine_name 

如果您在不同的文件分割你的JS,你的文件your_engine_name/app/assets/javascripts/your_engine_name.js可能有以下幾點:

//= require_tree . 

這將加載所有在your_engine_name/app/assets/javascripts/ JS文件,作爲「。」。指的是本地文件夾(在這裏是引擎的JavaScript文件夾)。

請注意,當設置config.use_sprocketsActionView::Helpers::AssetTagHelper.register_javascript_expansion似乎沒有任何影響。我希望他們至少會在這種情況下發出警告。

如果您有一個rake任務來安裝引擎,那麼您可以對application.js執行附加操作。

用戶包含它的另一種方法是在erb佈局中插入<%= javascript_include_tag "your_engine_name" %>

我不認爲有辦法把它目前正在準備一些工作自動

+1

鏈輪東西是插入,但你所說的其餘部分通過點上。做得好。 – 2011-05-04 03:51:56

+0

圖像怎麼樣?我嘗試訪問寶石資產的圖像,但失敗了......這兩個問題是相關的嗎? – mabounassif 2011-08-19 20:19:41

+0

NVM我評論太快了,寶石內的資源現在自動加載到rails 3.1 – mabounassif 2011-08-19 20:28:05