изискването на активи от gem вече не работи в Rails 4.2

Имам приложение Rails 4.1(.10), което се опитвам да надстроя до Rails 4.2(.1), но ми е трудно да го направя.

Проблемът е свързан с това как активите се зареждат от скъпоценен камък, който използвам за споделяне на активи между множество приложения.

В моя скъпоценен камък имам следния код

# /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 в / не можа да намери файл „../../../vendor/assets/javascripts/bootstrap/bootstrap-alert“ с тип „application/javascript“

Трябва ли да изисквам активите на доставчика си по различен начин под Sprockets 3+?

Благодаря


person Sig    schedule 22.04.2015    source източник


Отговори (2)


vendor/assets/javascripts вече е включен в пътя за търсене по подразбиране и следователно всичко, от което се нуждаете, е require bootstrap/bootstrap-alert и т.н.

person nanaya    schedule 22.04.2015

Можете също да добавите пътя във вашия application.rb

config.assets ‹‹ Rails.root.join('vendor','assets', 'my_components')

person Stephane Paul    schedule 19.06.2015