2012-04-19 82 views
9

如何將vendor/assets/javascripts/mymountableenginevendor/assets/stylesheets/mymountableengine添加到我的可安裝引擎的資產路徑中?我希望能夠在我的可掛載引擎的帶有鏈輪的application.js/application.css文件中從這些文件夾請求文件。在導軌安裝引擎中添加資產路徑?

導軌3.2.2

謝謝。

+0

AFAIK路徑引擎的資產默認添加。 [這個答案]提供了有關該主題的更多信息。您是否嘗試過在應用清單中要求引擎的資產? – 2012-04-19 09:18:55

+0

您的鏈接已損壞=)。我確實可以訪問應用程序/資產中的資產,但我手動添加了供應商目錄並希望將其包含在路徑中。我沒有在我的應用程序的清單中添加引擎的資源,我只是用'''javascript_include_tag'引擎/ application.js''''加載它們 - 這很好用,我得到了'''app/assets'中的所有資源'',但是當我嘗試從''''engine/application.js'''中的''vendor/assets''請求文件時,我得到一個文件不存在的錯誤。 – Yeggeps 2012-04-19 10:04:03

+0

啊,對不起,我的意思是[這個答案](http://stackoverflow.com/a/5877665/357743)。 – 2012-04-19 10:46:26

回答

8

原來他們已經加載!只要將它們放在錯誤的目錄中:engine/vendor/assets/javascripts/engine - 將它們放入engine/vendor/assets/javascripts使其成爲可能。對於其他人,只是檢查Rails.application.config.assets.paths,看看哪些路徑被加載,我相信引擎使用父母鏈輪環境,所以要加道僅使用Rails.application.config.assets.paths << "path/here"

+0

這讓我瘋狂並且運行'rails console'然後'放置Rails.application.config.assets.paths.join「\ n」'幫助我發現默認的供應商文件夾沒有被包括在內。謝謝! – Jondlm 2014-01-06 00:28:40

5

我這樣做:

module MyEngine 
    class Engine < ::Rails::Engine 

    config.assets.paths << File.expand_path("../../assets/stylesheets", __FILE__) 
    config.assets.paths << File.expand_path("../../assets/javascripts", __FILE__) 
    config.assets.precompile += %w(my_engine.css) 

    end 
end 
+0

注意:請務必在此處使用<<而不是+ =。至少從我的經驗來看,Rails 4.2「+ =」會默默無聞地破壞你的應用程序而不會拋出任何錯誤。 – engineerDave 2015-02-27 17:58:45

+0

是的,我們應該添加元素到數組中,而不是用「預編譯」替換它。 – 2015-02-27 18:33:44