Pet*_*ich 13 assets ruby-on-rails precompile asset-pipeline
我无法将供应商资产编译为根文件.
我希望独立提供以下资源(不与其他资产一起打包):
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
Run Code Online (Sandbox Code Playgroud)
使用以下行:
config.assets.precompile += %w( jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css )
Run Code Online (Sandbox Code Playgroud)
只预编译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 )
Run Code Online (Sandbox Code Playgroud)
但它没有任何区别.想法?
Max*_*Max 18
默认情况下,Rails只会查看3个位置:app/assets,lib/assets或vendor/assets.Sprockets在子目录中查找JS资产javascripts.例如
app/assets/javascripts/arbor.js
lib/assets/javascripts/arbor.js
vendor/assets/javascripts/arbor.js
Run Code Online (Sandbox Code Playgroud)
如果你想看看Rails在哪里寻找,你可以在控制台中使用它: Rails.application.config.assets.paths
您可以做的是将自定义路径添加到管道:
# @file: config/application.rb
config.assets.paths << Rails.root.join("vendor", "gems", "neo-viz", "app", "assets", "javascripts")
Run Code Online (Sandbox Code Playgroud)
然后创建一个清单,其中包含您的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
Run Code Online (Sandbox Code Playgroud)
最后添加你的清单:
config.assets.precompile += %w( neo-viz.js )'
Run Code Online (Sandbox Code Playgroud)
如果您仍然想要分开添加它们,我没有看到重点,为什么不将它们包含在清单中,那么您将必须添加所有可能的路径前缀,以便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")
Run Code Online (Sandbox Code Playgroud)
然后您可以像这样添加它们,因为清单外的资源必须添加到预编译数组中:
config.assets.precompile += %w( jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css )
Run Code Online (Sandbox Code Playgroud)
资料来源:2.1资产组织
| 归档时间: |
|
| 查看次数: |
9812 次 |
| 最近记录: |