启动thin服务器时加载bootstrap-sass出现问题,rails

4

我正在尝试启动我的轻型服务器,但是出现了以下错误导致无法成功:

myApp/gems/bootstrap-sass-2.1.0.0/lib/bootstrap-sass.rb:18:in `load!': 
bootstrap-sass requires either Rails > 3.1 or Compass, neither of which 
are loaded (Bootstrap::FrameworkNotFound)
from /Users/MyName/.rvm/gems/ruby-1.9.3-p194@myApp/gems/bootstrap-sass-2.1.0.0/lib/bootstrap-sass.rb:43:in `<top (required)>'
*a bounch of more lines indicating code lines*

我曾尝试使用宝石"compass"代替"compass-rails",但没有任何结果。我已经将其放在:assets组之外,但也没有运气。这是怎么回事?

我找不到任何相关信息。我的gemfile看起来像这样:

source 'https://rubygems.org'

gem 'rails', '3.2.8'
gem 'pg', '0.12.2'

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'compass-rails'
  gem "bootstrap-sass", ">= 2.1.0.0"
  gem 'uglifier', '>= 1.0.3'
end

group :test do
  gem 'shoulda'
  gem 'mocha'
end

gem 'jquery-rails'
gem "thin", ">= 1.4.1"
gem "rspec-rails", ">= 2.11.0", :group => [:development, :test]
gem "capybara", ">= 1.1.2", :group => :test
gem "email_spec", ">= 1.2.1", :group => :test
gem "cucumber-rails", ">= 1.3.0", :group => :test, :require => false
gem "database_cleaner", ">= 0.8.0", :group => :test
gem "launchy", ">= 2.1.2", :group => :test
gem "factory_girl_rails", ">= 4.0.0", :group => [:development, :test]

gem "devise", ">= 2.1.2"
gem "cancan", ">= 1.6.8"
gem "rolify", ">= 3.2.0"
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'paperclip', '~> 3.0'
gem 'ayah_integration'
gem 'rails_autolink'

运行 Ruby 1.9.3p194,Rails 3.2.6,osX 10,使用 Rails Composer(bootstrap-devise-cancan)生成的项目。 - Automatico
3个回答

2
所以,我找到了问题所在。问题非常傻.. 所以:
在我的config.ru文件中,我有以下内容:
...
require 'bootstrap-sass'
require ::File.expand_path('../config/environment',  __FILE__)
...

本来应该是反过来的:

...
require ::File.expand_path('../config/environment',  __FILE__)
require 'bootstrap-sass'
...

我的config.ru中没有require 'bootstrap-sass',而且我的网站运行良好已经很长时间了... 当我运行rails g rails_admin:install时,会出现上述错误。 - Geoff
1
@Geoff,你可能需要将SASS/Compass/无论什么东西从rails_admin下面移动到上面,然后再次运行bundle install。我的理解是rails_admin使用bootstrap-sass - Jason Swett
@JasonSwett 谢谢,我相信那就是解决方法 - 我把rails_admin移到了我的Gemfile底部,自那以后一切都很好! - Geoff

2
在我的情况下,问题出在 Gemfile 文件中,我原本写的是:
gem 'bootstrap-sass', '~> 2.3.1.0'  
gem 'sass-rails',   '~> 3.2.0'  

而且应该是:
gem 'sass-rails',   '~> 3.2.0'
gem 'bootstrap-sass', '~> 2.3.1.0'

如果您不使用Compass,则在config.ru中不需要require 'bootstrap-sass'
[编辑] Gemfile中的顺序破坏应用程序是否有一个真正好的原因?我认为这是一种架构缺陷。

这对我解决了问题,除了将sass-railsbootstrap-sass交换之外,我将sass-railsrails_admin交换了。 - Jason Swett

-1

我现在正在使用这个组合在我的Gemfile中,看起来工作得还不错。

group :assets do
  gem 'bootstrap-sass', '~> 2.0.4.0'
  gem 'compass'
end

在我的帖子上添加了一些评论。 - Automatico
同时也遇到了原帖作者的错误并尝试了上述方法,但没有起作用。 - Geoff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接