我最近参加了一个黑客马拉松,我们在rails中创建了一个Web应用程序。我们都是rails的新手并且不知道bootstrap gem,因此我们在assets文件夹中硬编码了bootstrap样式表。
为了学习Rails,我还在继续使用该应用程序。我删除了.css文件,并将gem添加到我的Gemfile中。我已经运行了bundle install并使用另一个CSS文件中的'@import'命令导入了文件。
当我运行rails服务器并导航到我的主页时,出现错误:
Sass::SyntaxError in Pages#rootpage
Showing C:/Users/User/Documents/SoapBox/app/views/layouts/application.html.erb where line #6 raised:
File to import not found or unreadable: bootstrap.
Load paths:
C:/Users/Soham/Documents/SoapBox/app/assets/images
C:/Users/Soham/Documents/SoapBox/app/assets/javascripts
C:/Users/Soham/Documents/SoapBox/app/assets/stylesheets
C:/Users/Soham/Documents/SoapBox/vendor/assets/javascripts
C:/Users/Soham/Documents/SoapBox/vendor/assets/stylesheets
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/turbolinks-1.3.0/lib/assets/javascripts
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/jquery-rails-3.0.4/vendor/assets/javascripts
(in C:/Users/Soham/Documents/SoapBox/app/assets/stylesheets/styles.css.scss:2)
`File to import not found or unreadable: bootstrap`.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href='http://fonts.googleapis.com/css?family=Oswald:700,300' rel='stylesheet' type='text/css'>
<%= favicon_link_tag "favicon.png", :type => "image/png", :rel => "icon" %>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
我不明白为什么会发生错误。
非常感谢任何帮助!
谢谢!
SohamK
答案 0 :(得分:1)
我建议观看此内容:RailsCast
它提到安装这样的引导程序:
#commandline
rails g bootstrap:install
如果之后不起作用,请尝试将其添加到较少的文件中。
#css NOT scss
@import "twitter/bootstrap/bootstrap";
请记住,宝石更少。将较少的文件导入scss文件将会中断。
答案 1 :(得分:0)
更新: 由于您已经在使用bootstrap-sass,因此它应该没有任何问题。你可以粘贴styles.css.scss
的内容吗?原件: 如果你想将它导入自定义样式表,你可能需要bootstrap-sass而不是bootstrap-rails gem。
#Gemfile
group :assets do
gem 'bootstrap-sass'
end
# app/assets/stylesheets/styles.css.scss
@import 'bootstrap';
@import 'bootstrap/responsive';
如果你想使用bootstrap-rails gem,你需要在application.css中导入sprocket里面
# Gemfile
group :assets do
gem 'bootstrap-rails'
end
# app/assets/stylesheets/application.css
/*
*= require bootstrap
*= require bootstrap/responsive
*/
答案 2 :(得分:0)
虽然这不会回答你关于你的错误的问题,但我更喜欢简单地在你的'Vendor'资产文件夹中包含Bootstrap文件(通常的做法是把你没有编码的任何东西放在那里像JQuery一样)。
我更喜欢这个,因为当Twitter-Bootstrap有更新时,删除文件要简单得多。此外,在您使用的任何编辑器中查看CSS文件要好得多。
答案 3 :(得分:0)
将扩展程序.scss
添加到application.css
。如果您删除了它,请再次添加。
它应该是这样的:
#application.css.scss
/*
*
*= require_self
*= require_tree .
*/
@import "bootstrap";
...
在.scss
文件中使用该导入非常重要。否则它将无法工作。
有意义吗?