config.assets.precompile不增加供应商/宝石资产(config.assets.

2019-07-28 21:18发布

我遇到了麻烦vendorized资产被编译为根目录的文件。

我想有以下资产可供独立(不与其他assets_包装:

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

用下面的一行:

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

只有CSS文件预编译,并可用。 为什么?

另外,看到这个问题(后包括子目录资产与Rails的config.assets.precompile ),我想:

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   )

但它并没有区别。 想法?

Answer 1:

默认情况下,Rails的不仅看起来到3个位置: app/assetslib/assetsvendor/assets 。 链轮会在子目录JS资产javascripts 。 例如

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,我不明白这一点,为什么不包括他们在一个清单,那么你就必须添加所有可能的路径前缀这样的Rails知道在哪里看:

 # @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资产组织



文章来源: config.assets.precompile not adding vendor/gem assets