【问题标题】:requiring assets from gem doe not work anymore in Rails 4.2从 gem 获取资产在 Rails 4.2 中不再起作用
【发布时间】:2015-04-22 10:27:27
【问题描述】:

我有一个 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' 与 输入“应用程序/javascript”

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

谢谢

【问题讨论】:

    标签: ruby-on-rails-4 sprockets


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你也可以在你的application.rb中添加路径

      config.assets

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-01
        • 1970-01-01
        • 2023-04-08
        • 1970-01-01
        • 2022-08-10
        • 2014-05-14
        • 2013-04-09
        相关资源
        最近更新 更多