我正在使用Rails 3.2.8。當應用程序被部署的接入認爲是包括一個javascript:問題與JavaScript包括Rails應用程序
<%= javascript_include_tag "epiceditor" %>
Heroku的失敗,此日誌:
ActionView::Template::Error (/app/app/assets/javascripts/epiceditor.js.erb has already been required
我查了一些可能的解決方案,如檢查可能引發的任何參考一個循環依賴,或者只是在它被包含在其他地方的情況下將其刪除,而不是。所以,如果我包含它,我會得到這個「已經包含錯誤」,如果我沒有,那麼該文件根本不包括在內。
我的config/application.rg有這個
config.assets.initialize_on_precompile = false
而且applications.js有這樣的:
//= require jquery
//= require jquery_ujs
//= require tabs
值得注意的是,標籤被引用的文件是「epiceditor這可能是非常重要的。 js.erb「,因爲它具有我需要的一些嵌入式Rails代碼。
感謝您的幫助
編輯:
我相信這是鏈輪的錯誤。如果我更新Rails到3.2.9rc2,錯誤現在是這樣的: ActionView :: Template :: Error(資產邏輯路徑沒有擴展名:epiceditor/.js
但當然在epiceitor中的擴展是epiceditor.js .erb,我已經試過在javascript_include_tag顯式說明它。
你說Heroku失敗;我認爲它在開發中起作用? –
是的,它在開發環境中工作。在Heroku生產失敗。 – alvatar
可以肯定的是,當您說它在開發中工作時,文件是否包含在您的HTML中,或者是正在加載的頁面沒有錯誤?看看你的application.js文件中有什麼,epiceditor.js.erb文件將不會被加載,除非你專門調用它:require epiceditor,或者除非你在文件夾中的其餘文件中加載:require樹,(我認爲這是正確的語法 - 我剛剛從內存中寫入)。 – Pete