要求来自gem doe的资产不再适用于Rails 4.2

时间:2015-04-22 10:27:28

标签: ruby-on-rails-4 sprockets

我有一个Rails 4.1(.10)应用程序,我正在尝试升级到Rails 4.2(.1),但我很难这样做。

问题与如何从我用来在多个应用程序之间共享资产的gem加载资产有关。

在我的gem中,我有以下代码

# /assets_gem/app/assets/javascript/my_js.js
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require turbolinks
//= require ../../../vendor/assets/javascripts/bootstrap/bootstrap-alert
//= require ../../../vendor/assets/javascripts/bootstrap/bootstrap-tooltip
//= require ../../../vendor/assets/javascripts/bootstrap/bootstrap-popover

并在assets_gem / vendor / assets / javascripts / bootstrap中我有3个js文件。

在我的Rails应用程序中,我有以下代码

# idx/app/assets/javascripts/application.js
//= require my_js
//= require_tree ./application

在Rails 4.1.10和Sprockets 2.12.3中一切正常但是当我升级到Rails 4.2.1和Sprockets 3.0.1时,我得到以下错误

  

Sprockets :: FileNotFound at /找不到文件   '../../../vendor/assets/javascripts/bootstrap/bootstrap-alert'with   输入'application / javascript'

我是否应该在Sprockets 3 +下以不同的方式要求我的供应商资产?

由于

2 个答案:

答案 0 :(得分:3)

vendor/assets/javascripts已包含在默认搜索路径中,因此您只需要require bootstrap/bootstrap-alert等。

答案 1 :(得分:1)

您还可以在application.rb

中添加路径

config.assets<< Rails.root.join('供应商','资产',' my_components')