Sass :: SyntaxError:导入文件不存在或不可读:bootstrap-sprockets

我突然在开发和部署生产中出现这个错误。

custom.css.scss

@import "bootstrap-sprockets"; @import "bootstrap"; 

错误(生产中)

 rake aborted! Sass::SyntaxError: File to import not found or unreadable: bootstrap-sprockets. Load paths: /srv/www/myapp/releases/20141001060418/app/assets/images /srv/www/myapp/releases/20141001060418/app/assets/javascripts /srv/www/myapp/releases/20141001060418/app/assets/stylesheets /srv/www/myapp/releases/20141001060418/vendor/assets/javascripts /srv/www/myapp/releases/20141001060418/vendor/assets/stylesheets 

对Gemfile进行更改后,不要忘记使用rails s重新启动服务器

我通过升级bootstrap-sass解决了这个问题

 gem 'bootstrap-sass', '3.2.0.2' 

Gemfile中的每个更改后,请重新启动您的rails服务器

 rails server 

我通过以下步骤解决了它:

  1. 项目清单
  2. 复制我的“app / assets / stylesheets /中的”bootstrap.css“(缺失)
  3. gem install autoprefixer-rails(同时修改Gemfile)
  4. gem安装链轮(也修改Gemfile)
  5. 捆绑安装
  6. RESTART服务器(不只是刷新页面)

确保你没有

 gem 'bootstrap' # Remove this line gem 'bootstrap-sass' 

它应该是

 gem 'bootstrap-sass' 

这个错误主要来自rails 3.2.x版本。 如果您使用rails 3.2版本,则必须在您的gem文件中指定一个特殊版本,如下所示:

 gem 'rails', '3.2.0' gem 'bootstrap-sass', '3.2.0.2' 

它将解决问题的rails -v '3.2.0'

把它放在gem文件中

 gem 'bootstrap-sass', '~> 3.3.5' gem 'sass-rails', '>= 3.2' 

然后运行$ bundle install

重新启动服务器。

这就是我解决这个问题的方法。

转到Bootstrap for Sass Github页面并按照说明进行操作:

  1. 将以下内容添加到Gemfile中

    gem'bootstrap-sass','〜> 3.3.6'gem'sass-rails','> = 3.2'

  2. 运行命令bundle install

  3. 启动/重新启动服务器

    导轨s

另外,确保该文件具有.scss扩展名(或.sass for Sass语法)。 如果您刚刚生成了新的Rails应用程序,则可能会附带.css文件。 如果这个文件存在,它将被服务而不是Sass,所以重命名它。 然后,删除所有* = require_self和* = require_tree。 来自sass文件的声明。 相反,使用@import导入Sass文件。

如果在运行集成testing时收到此消息,请确保您的资产gem已包含在testing组中。

例如,更改:

group :assets do gem 'sass-rails', '~> 5.0.3' gem 'uglifier', '>= 1.3.0' end

至:

group :assets, :test do gem 'sass-rails', '~> 5.0.3' gem 'uglifier', '>= 1.3.0' end

我观察到了同样的行为。 在我的情况下,我已经删除了“bootstap-sass”的版本,它的工作。 有可能是导致问题的gem版本兼容性问题。

gem文件

 gem 'bootstrap-sass' 

在gem文件中进行更改后,执行以下命令:

 bundle install 

如果服务器已经在运行,那么通过“ CTRL + C ”停止它,然后再次启动服务器

 rails s 

确保在将Gem文件添加到您的Gemfile文件中后,运行以下命令

  gem "bootstrap-sprockets", "~>3.3" gem "bootstrap" 

现在停止你的服务器并运行以下命令:

  bundle install rails server 

重新启动您的服务器。 刷新浏览器,你会看到立即反映的变化。 在生产中,您可能需要运行此命令来预编译您的资产:

  bundle exec bin/rake assets:precompile 

它为我工作。 希望这是有帮助的。