ruby-on-rails – 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

以下行:

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   )

但没有什么区别.想法?

解决方法

@H_502_21@ 认情况下,Rails只能查看3个位置:app / assets,lib / assets或vendor / assets. Sprockets在子目录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 )'

如果你还想分开添加它们,我看不清楚,为什么不将它们包含在清单中,那么你必须添加所有可能的路径前缀,所以Rails知道在哪里看:

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

然后,您可以像这样添加它们,因为清单之外的资产必须添加到预编译数组中:

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

资料来源:2.1 Asset Organization

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...