【发布时间】:2014-04-15 09:36:29
【问题描述】:
所以我的 Rails 项目遇到了问题。在我的 Gemfile 中,这是我的代码:
source 'https://rubygems.org'
gem 'rails', '4.0.3'
gem 'sqlite3'
gem 'thin'
gem 'uglifier', '>= 1.3.0'
group :assets do
gem 'sass-rails', '~> 4.0.1'
gem 'coffee-rails', '~> 4.0.0'
gem 'eco'
gem 'compass-rails'
gem 'bootstrap-sass'
end
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
group :doc do
gem 'sdoc', require: false
end
这是我的 application.css.scss 文件:
@import "bootstrap";
如果我将 'group :assets do' 屏蔽掉,而只是尝试在不带它的情况下运行 rails,我会遇到此错误:
/Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches/browser_support.rb:1:in `require': cannot load such file -- sass/script/node (LoadError)
from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches/browser_support.rb:1:in `<top (required)>'
from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:2:in `require'
from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:2:in `block in <top (required)>'
from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:1:in `each'
from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:1:in `<top (required)>'
from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions.rb:9:in `require'
from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass/sass_extensions.rb:9:in `<top (required)>'
from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass.rb:5:in `require'
from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass.rb:5:in `block in <top (required)>'
from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass.rb:4:in `each'
from /Library/Ruby/Gems/2.0.0/gems/compass-0.12.2/lib/compass.rb:4:in `<top (required)>'
from /Library/Ruby/Gems/2.0.0/gems/compass-rails-1.1.3/lib/compass-rails.rb:1:in `require'
from /Library/Ruby/Gems/2.0.0/gems/compass-rails-1.1.3/lib/compass-rails.rb:1:in `<top (required)>'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:76:in `require'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:72:in `each'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:72:in `block in require'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:61:in `each'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:61:in `require'
from /Library/Ruby/Gems/2.0.0/gems/bundler-1.5.3/lib/bundler.rb:131:in `require'
from /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/config/application.rb:12:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/config/environment.rb:2:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/config.ru:3:in `block in <main>'
from /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
from /Library/Ruby/Gems/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:55:in `initialize'
from /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/config.ru:1:in `new'
from /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/config.ru:1:in `<main>'
from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/rack/adapter/loader.rb:33:in `eval'
from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/rack/adapter/loader.rb:33:in `load'
from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/rack/adapter/loader.rb:42:in `for'
from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/thin/controllers/controller.rb:170:in `load_adapter'
from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/thin/controllers/controller.rb:74:in `start'
from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/thin/runner.rb:199:in `run_command'
from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/lib/thin/runner.rb:155:in `run!'
from /Library/Ruby/Gems/2.0.0/gems/thin-1.6.2/bin/thin:6:in `<top (required)>'
from /usr/bin/thin:23:in `load'
from /usr/bin/thin:23:in `<main>'
要摆脱这种情况,我必须使用组 :assets do block。但是,一旦我启动并运行 rails 服务器,如果 '@import "bootstrap";'在 application.css.scss 中(因为文件附加了 .scss),当我尝试在浏览器中加载我的 rails 项目时出现以下错误:
Showing /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/app/views/layouts/application.html.erb where line #5 raised:
File to import not found or unreadable: bootstrap.
Load paths:
/Users/Stuart/Documents/Code/Sublime/one_kingdom_design/app/assets/images
/Users/Stuart/Documents/Code/Sublime/one_kingdom_design/app/assets/javascripts
/Users/Stuart/Documents/Code/Sublime/one_kingdom_design/app/assets/stylesheets
/Users/Stuart/Documents/Code/Sublime/one_kingdom_design/vendor/assets/javascripts
/Users/Stuart/Documents/Code/Sublime/one_kingdom_design/vendor/assets/stylesheets
/Library/Ruby/Gems/2.0.0/gems/turbolinks-2.2.1/lib/assets/javascripts
/Library/Ruby/Gems/2.0.0/gems/jquery-rails-3.1.0/vendor/assets/javascripts
(in /Users/Stuart/Documents/Code/Sublime/one_kingdom_design/app/assets/stylesheets/application.css.scss:13)
这是它突出显示的提取源:
<html>
<head>
<title>OneKingdomDesign</title>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>//this line is highlighted in the firefox browser
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
</head>
谁能帮我找出这个问题的根源可能是什么?我相信它与 Sass 宝石有关,但我不确定。如果这很重要,我正在使用 Ruby 2.0.0p247。
编辑:我已经缩小了范围,这不是 sass,而是指南针导轨。不管我怎么尝试,指南针都在和我争论。
【问题讨论】:
-
你使用的是什么版本的 Sass?
-
4.0.1?但是我只是做了一些更改,并摆脱了组 :assets do block 并且只取出了 'gem 'compass-rails'' 行,服务器运行并且页面刷新得很好。所以它必须与“gem'compass-rails'”有关
-
我对 Rails 特定的 gem 一无所知,但我知道当前稳定版本的 Sass 和 Compass 之间存在版本冲突。如果您有当前稳定版的 Sass,则需要获取边缘版本的 Compass。
-
我在从 rails 3.2 迁移到 rails 4 的应用程序中遇到了同样的问题。我使用的是 ruby 1.9.3。我没有使用指南针,只是 bootstrap-sass。 rake assets:预编译在这里失败:.rvm/gems/ruby-1.9.3-p392/gems/sass-rails-4.0.1/lib/sass/rails/importer.rb:84:in `evaluate'
标签: javascript ruby-on-rails ruby backbone.js sass