当前位置 : 主页 > 编程语言 > ruby >

ruby-on-rails-4 – 将bootstrap-sass gem包装在另一个gem中会导致资产清单中断

来源:互联网 收集:自由互联 发布时间:2021-06-23
我正在尝试将bootstrap-sass gem包装在另一个gem中(让我们称之为my-engine).在此过程中,我正在构建一个小型Rails应用程序来测试.作为第一步,我想确保我可以直接在我的Rails应用程序中使用bo
我正在尝试将bootstrap-sass gem包装在另一个gem中(让我们称之为my-engine).在此过程中,我正在构建一个小型Rails应用程序来测试.作为第一步,我想确保我可以直接在我的Rails应用程序中使用bootstrap-sass. Rails应用程序的Gemfile如下所示:

gem 'bootstrap-sass', '3.3.1.0'
gem 'my-engine, path: "~/dev/my-engine"

这很好用.引导资产被加载到我的Rails应用程序中,一切看起来都不错.现在,我想从我的Rails应用程序中取出bootstrap-sass并让它通过我的引擎加载.所以,我的Rails应用程序Gemfile现在看起来像:

gem 'my-engine, path: "~/dev/my-engine"

我的引擎的.gemspec有:

spec.add_runtime_dependency 'bootstrap-sass', '3.3.1.0'

我可以毫无问题地重新捆绑我的引擎宝石.我可以毫无问题地重新捆绑Rails应用程序.但是,当我刷新Rails应用程序的页面时,我收到以下错误:

File to import not found or unreadable: bootstrap-sprockets.

当sprockets尝试构建application.css文件时,会发生这种中断.有时这会通过,我会在构建application.js时得到一个关于错过bootstrap.js javascript文件的错误.

为什么会这样?我想知道它是否与我在本地开发宝石并且尚未发布它们的事实有关,尽管我不确定为什么这会影响已发布的bootstrap-sass.我正在使用bundler 1.5.3.

确保引擎中需要’bootstrap-sass’.一个明智的地方是你的lib / my-engine.rb文件:

require 'bootstrap-sass'

当你试图包装gems时,在.gemspec中添加bootstrap-sass gem作为运行时依赖是不够的.

网友评论