2012-04-08 32 views
12

我無法將供應商資產編譯爲根文件。config.assets.precompile不添加供應商/寶石資產

vendor/gems/neo-viz/app/assets/stylesheets/neo-viz.css.scss 
vendor/gems/neo-viz/app/assets/javascripts/neo-viz.js.coffee 
vendor/gems/neo-viz/app/assets/javascripts/lib/jQuery/jquery-1.6.1.min.js 
vendor/gems/neo-viz/app/assets/javascripts/lib/arbor/arbor.js 

通過下面的一行:

我想有以下資產可獨立(不與其他assets_包裝。

config.assets.precompile += %w(jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css) 

只有css文件是預編譯,並提供爲什麼?

另外,看到這個問題後(Including assets in subdirectories with config.assets.precompile in Rails),我試過了:

config.assets.precompile += %w(jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css lib/arbor/arbor.js arbor/arbor.js lib/jQuery/jquery-1.6.1.min.js jQuery/jquery-1.6.1.min.js ) 

但它沒有區別。想法?

回答

18

默認情況下,Rails僅查找3個位置:app/assetslib/assetsvendor/assets。鏈輪在子目錄javascripts中查找JS資產。例如。

app/assets/javascripts/arbor.js 
lib/assets/javascripts/arbor.js 
vendor/assets/javascripts/arbor.js 

如果你想看到的Rails正在尋找您可以在控制檯中使用:Rails.application.config.assets.paths

你可以做的是自定義的路徑添加到管道:

# @file: config/application.rb 
config.assets.paths << Rails.root.join("vendor", "gems", "neo-viz", "app", "assets", "javascripts") 

然後創建一個清單,其中包含您的JS文件:

# @file: /vendor/gems/neo-viz/app/assets/javascripts/neo-viz.js 
//= require lib/jQuery/jquery-1.6.1.min 
//= require lib/arbor/arbor 
//= require neo-viz 

最後添加您的清單:

config.assets.precompile += %w(neo-viz.js)' 

如果你仍然想將它們添加separatly,我不明白這一點,爲什麼不包括他們在一個清單,那麼你就必須添加所有可能的路徑前綴,以便軌道知道去哪裏找:

# @file: config/application.rb 
config.assets.paths << Rails.root.join("vendor", "gems", "neo-viz", "app", "assets", "stylesheets") 
config.assets.paths << Rails.root.join("vendor", "gems", "neo-viz", "app", "assets", "javascripts") 
config.assets.paths << Rails.root.join("vendor", "gems", "neo-viz", "app", "assets", "javascripts", "lib", "jQuery") 
config.assets.paths << Rails.root.join("vendor", "gems", "neo-viz", "app", "assets", "javascripts", "lib", "arbor") 

然後你可以將它們添加這樣的,因爲資產之外的清單必須加入預編譯數組:

config.assets.precompile += %w(jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css) 

來源:2.1 Asset Organization

+1

這是非常有幫助的。這已經很長時間了,但是這個答案應該被檢查爲_accepted_imo。 – sargas 2015-02-17 00:20:37

相關問題