如何在不修改应用程序的情况下解决 Rails 中的"Error: File to import not found or unreadable: bootstrap-sprockets.".css



我是web开发的新手,我通过书的网站跟随Michael Hartl的Ruby on Rails教程,我遇到了"错误:要导入的文件未找到或不可读:bootstrap-sprockets."当我试图导入bootstrap/bootstrap-sprockets时消失。我知道这个问题已经被问过很多次了,但是我找不到一个答案是不涉及修改application.css文件

在他的书中,Hartl先生创建了一个custom.css.scss文件来导入bootstrap和bootstrap-链轮,而不是像许多其他答案以及bootstrap README所建议的那样,在application.css中导入它们。当我遵循他的custom.css.scss方法时,我得到"错误:要导入的文件未找到或不可读:bootstrap-sprockets."这出现在浏览器的网页上。页面的内容和样式正是我想要的,除了出现在页面内容顶部的错误消息。

custom.css.scss

@import "bootstrap-sprockets";
@import "bootstrap";
/* universal */
body {
  padding-top: 60px;
}
section {
  overflow: auto;
}
textarea {
  resize: vertical;
}
.center {
  text-align: center;
}
.center h1 {
  margin-bottom: 10px;
}

我已经确定了一个问题是,每当我保存我所做的任何更改custom.css。Scss,一个名为custom。css。css的文件根据它是否存在而被创建或修改,它通常用以下

填充
/*
Error: File to import not found or unreadable: bootstrap-sprockets.
        on line 1 of /home/ubuntu/workspace/sample_app/app/assets/stylesheets/custom.css.scss
1: @import "bootstrap-sprockets";
2: @import "bootstrap";
3: 
4: /* universal */
5: 
6: body {
Backtrace:
/home/ubuntu/workspace/sample_app/app/assets/stylesheets/custom.css.scss:1
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/import_node.rb:67:in `rescue in import'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/import_node.rb:45:in `import'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/import_node.rb:28:in `imported_file'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/import_node.rb:37:in `css_import?'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/perform.rb:311:in `visit_import'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/base.rb:36:in `visit'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/perform.rb:158:in `block in visit'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/stack.rb:79:in `block in with_base'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/stack.rb:115:in `with_frame'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/stack.rb:79:in `with_base'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/perform.rb:158:in `visit'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/base.rb:52:in `block in visit_children'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/base.rb:52:in `map'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/base.rb:52:in `visit_children'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/perform.rb:167:in `block in visit_children'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/perform.rb:179:in `with_environment'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/perform.rb:166:in `visit_children'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/base.rb:36:in `block in visit'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/perform.rb:186:in `visit_root'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/base.rb:36:in `visit'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/perform.rb:157:in `visit'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/visitors/perform.rb:8:in `visit'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/root_node.rb:36:in `css_tree'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/tree/root_node.rb:29:in `render_with_sourcemap'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/engine.rb:378:in `_render_with_sourcemap'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/engine.rb:295:in `render_with_sourcemap'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/plugin/compiler.rb:490:in `update_stylesheet'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/plugin/compiler.rb:215:in `block in update_stylesheets'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/plugin/compiler.rb:209:in `each'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/plugin/compiler.rb:209:in `update_stylesheets'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/plugin.rb:82:in `update_stylesheets'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/exec/sass_scss.rb:364:in `watch_or_update'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/exec/sass_scss.rb:51:in `process_result'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/exec/base.rb:52:in `parse'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/lib/sass/exec/base.rb:19:in `parse!'
/usr/local/rvm/gems/ruby-2.2.1/gems/sass-3.4.18/bin/scss:13:in `<top (required)>'
/usr/local/rvm/gems/ruby-2.2.1/bin/scss:23:in `load'
/usr/local/rvm/gems/ruby-2.2.1/bin/scss:23:in `<main>'
*/
body:before {
  white-space: pre;
  font-family: monospace;
  content: "Error: File to import not found or unreadable: bootstrap-sprockets.A         on line 1 of /home/ubuntu/workspace/sample_app/app/assets/stylesheets/custom.css.scssA A 1: @import "bootstrap-sprockets";A 2: @import "bootstrap";A 3: A 4: /* universal */A 5: A 6: body {"; }

如果我删除custom.css.css文件,并在浏览器中重新加载页面,错误信息将从网页中消失。但是当我编辑/保存custom.css。css, custom.css.css被重新创建,具有相同的内容,并且当我在浏览器中重新加载页面时将显示错误消息。

同样,如果我从custom.css。那么,生成的custom.css.css文件将包含与修改后的custom.css.scss完全相同的内容,而没有任何错误消息,因此,错误似乎在于导入bootstrap和bootstrap-sprockets。

顺便说一下,我直接从书的网站上复制和粘贴代码,所以我使用的是截至2015年9月12日网站上的任何版本的宝石。因此,我的gemfile如下(这是本书清单11.67中的最后一个gemfile)
source 'https://rubygems.org'
gem 'rails',                   '4.2.2'
gem 'bcrypt',                  '3.1.7'
gem 'faker',                   '1.4.2'
gem 'carrierwave',             '0.10.0'
gem 'mini_magick',             '3.8.0'
gem 'fog',                     '1.26.0'
gem 'will_paginate',           '3.0.7'
gem 'bootstrap-will_paginate', '0.0.10'
gem 'bootstrap-sass',          '3.2.0.0'
gem 'sass-rails',              '5.0.2'
gem 'uglifier',                '2.5.3'
gem 'coffee-rails',            '4.1.0'
gem 'jquery-rails',            '4.0.3'
gem 'turbolinks',              '2.3.0'
gem 'jbuilder',                '2.2.3'
gem 'sdoc',                    '0.4.0', group: :doc
group :development, :test do
  gem 'sqlite3',     '1.3.9'
  gem 'byebug',      '3.4.0'
  gem 'web-console', '2.0.0.beta3'
  gem 'spring',      '1.1.3'
end
group :test do
  gem 'minitest-reporters', '1.0.5'
  gem 'mini_backtrace',     '0.1.3'
  gem 'guard-minitest',     '2.3.1'
end
group :production do
  gem 'pg',             '0.17.1'
  gem 'rails_12factor', '0.0.2'
  gem 'puma',           '2.11.1'
end

我花了很多时间尽可能地遵循教程,所以我将感谢任何帮助在不修改application.css的情况下解决这个错误,因为教程没有这样做。

最后一点:我一直非常小心地重新启动Rails服务器,所以我相信这不是问题。

经过几个小时的搜索,我发现我的问题和这个问题是重复的。每次保存时,我都会遇到Cloud9 IDE自动构建的问题。

我在阅读Michael Hartl的Ruby on Rails教程时遇到了类似的错误。

但是,我在教程文档中没有遇到它,我在第5章之后的练习中得到了这个错误。

奇怪的是,我只在第3章介绍的Guard中得到这个错误消息。如果我使用rake test手动运行测试,没有错误。

当然,在我更改Gemfile或其他任何东西后,我确实重新启动了rails服务器。

我以为是测试代码的问题,但当我试图用眼睛检查页面时,我发现了一些问题。

我将"注册"页面的标题重新编码为"注册",所以这次页面的标题应该是"注册"而不是"注册"。但它并没有改变。我更改了这个页面的很多内容,并刷新了它,没有变化。最后我删除了这个页面(我指的是这个视图)的所有代码,没有。

但对于其他页面,仍然有效。

所以我想也许是Cloud9的问题。我将代码从Github克隆到我的本地机器并捆绑安装,启动服务器,不再有问题。我运行Guard进行自动测试,再次没有错误。

我不知道这是否真的是Cloud9的一些bug,但我知道我的代码现在不是原因。还在寻找更多相关的问题

我的母语不是英语,如果有语法错误或拼写错误,请原谅。谢谢。

最新更新