我在开发和部署生产中突然遇到此错误。
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
答案 0 :(得分:89)
更改Gemfile后,请不要忘记使用rails s
重新启动rails服务器就像一个魅力! :d
答案 1 :(得分:28)
我通过升级bootstrap-sass解决了这个问题
gem 'bootstrap-sass', '3.2.0.2'
答案 2 :(得分:12)
请在Gemfile中的每次更改
后重新启动rails服务器rails server
答案 3 :(得分:9)
确保您没有
gem 'bootstrap' # Remove this line
gem 'bootstrap-sass'
应该只是
gem 'bootstrap-sass'
答案 4 :(得分:5)
我按照以下步骤解决了这个问题:
答案 5 :(得分:3)
这就是我解决问题的方法。
转到Bootstrap for Sass Github page并按照说明操作:
将以下内容添加到Gemfile
gem' bootstrap-sass','〜> 3.3.6' gem' sass-rails','> = 3.2'
运行命令
bundle install
启动/重启服务器
rails s
此外,请确保该文件具有.scss扩展名(或Sass语法的.sass)。如果您刚刚生成了一个新的Rails应用程序,它可能会附带一个.css文件。如果此文件存在,则将提供该文件而不是Sass,因此将其重命名。 然后,删除所有* = require_self和* = require_tree。来自sass文件的语句。相反,使用@import导入Sass文件。
答案 6 :(得分:2)
我观察到了同样的行为。在我的情况下,我删除了宝石'bootstap-sass'的版本,它的工作原理。可能存在导致问题的gem版本的兼容性问题。
宝石文件
gem 'bootstrap-sass'
在gem文件中进行更改后,执行以下命令:
bundle install
如果服务器已在运行,请通过“ CTRL + C ”停止服务器并再次启动服务器
rails s
答案 7 :(得分:2)
在您的Gemfile中,您需要添加bootstrap-sass gem,并确保存在sass-rails gem-默认情况下将其添加到新的Rails应用程序中。
gem 'bootstrap-sass', '3.3.7'
gem 'sass-rails', '5.0.6'
gem 'rails', '5.0.0'
捆绑安装并重新启动服务器,以使文件可通过管道使用。 在 app / assets / stylesheets / application.scss中导入Bootstrap样式:
// "bootstrap-sprockets" must be imported before "bootstrap" and "bootstrap/variables"
@import "bootstrap-sprockets";
@import "bootstrap";
必须在引导程序之前导入bootstrap-sprockets,图标字体才能起作用。 确保文件具有.scss扩展名(或Sass语法为.sass)。如果您刚刚生成了一个新的Rails应用程序,则它可能带有.css文件。如果此文件存在,将代替Sass投放该文件,因此将其重命名:
$ mv app / assets / stylesheets / application.css 收件人: app / assets / stylesheets / application.scss
然后,从sass文件中删除所有*= require_self
和*= require_tree .
语句。而是使用@import
导入Sass文件。
例如
*= require_tree .
*= require_self
收件人:
@import require_tree .
@import require_self
请勿在Sass中使用*= require
,否则您的其他样式表将无法访问Bootstrap mixins或变量。
引导JavaScript取决于jQuery。如果您使用的是Rails 5.1+
,请将jquery-rails gem添加到您的Gemfile中:
gem 'jquery-rails'
$ bundle install
需要
中的Bootstrap Javascriptapp / assets / javascripts / application.js:
//= require jquery
//= require bootstrap-sprockets
bootstrap-sprockets
和bootstrap
不应同时包含在
application.js
。
bootstrap-sprockets
提供了各个Bootstrap Javascript文件(例如,alert.js或dropdown.js),而bootstrap
提供了一个包含所有Bootstrap Javascripts的串联文件。
这将纠正错误
Copied @github
答案 8 :(得分:1)
此错误主要出现在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'
答案 9 :(得分:1)
把它放在宝石文件中
gem 'bootstrap-sass', '~> 3.3.5'
gem 'sass-rails', '>= 3.2'
然后运行$ bundle install
重启服务器。
答案 10 :(得分:1)
如果在运行集成测试时收到此消息,请确保您的资产宝石包含在测试组中。
例如,更改:
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
答案 11 :(得分:1)
我遇到了同样的问题
sass::syntaxerror: file to import not found or unreadable: config/variables.
,我打开了一个新的css文件(我称之为custom.css),然后将所有css复制到了该文件。在application.css上,我删除了
@import“配置/变量”以及所有其他@imports
这对我有用,我希望它对您也有用!
答案 12 :(得分:0)
确保在将此gem添加到Gemfile后运行以下命令 把它放在Gemfile中
gem "bootstrap-sprockets", "~>3.3"
gem "bootstrap"
现在停止服务器并运行以下命令:
bundle install
rails server
重新启动服务器。刷新浏览器,您应该立即看到更改。 在生产中,您可能必须运行此命令来预编译资产:
bundle exec bin/rake assets:precompile
它对我有用。希望这有用。
答案 13 :(得分:0)
我遇到了同样的问题,但是我已经解决了,您只需要像这样在开发组中添加gem bootstrap-sass
:
group :development do
gem 'bootstrap-sass'
end
我希望这会有所帮助
答案 14 :(得分:0)
我在开发环境中也遇到类似的错误:
我通过-
解决了这个问题在我的gemfile中,我添加了它们-
gem'bootstrap','〜> 4.2.1'
gem'jquery-rails'
在application.js文件中,添加这些-
// =需要jquery3
// =需要弹出窗口
// =需要引导链轮
在扩展名为 .scss 的文件中,只需添加-
@import“ bootstrap”;
之后,只需运行捆绑安装
答案 15 :(得分:-1)
我通过删除解决了我的问题
gem 'bootstrap'