1

我最近参加了一个黑客马拉松,我们在 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 %>

我不明白为什么会发生错误。

任何帮助将非常感激!

谢谢!

索汉克

4

4 回答 4

1

我推荐看这个:RailsCast

它提到像这样安装引导程序:

#commandline
rails g bootstrap:install

如果之后它不起作用,请尝试将其添加到您的 less 文件中。

#css NOT scss   
@import "twitter/bootstrap/bootstrap";

请记住,该宝石较少。将较少的文件导入您的 scss 文件会中断。

于 2013-08-19T20:03:34.090 回答
0

尽管这不会回答您关于错误的问题,但我更喜欢将引导文件简单地包含在您的“供应商”资产文件夹中(在该文件夹中,通常将您未编码的任何内容(如 JQuery)放入其中)。

我更喜欢这个,因为当 Twitter-Bootstrap 有更新时,删除文件要简单得多。此外,在您使用的任何编辑器中查看您的 CSS 文件会更好。

于 2013-08-22T02:14:55.647 回答
0

将扩展名添加.scssapplication.css. 如果您删除了它,请重新添加它。

它应该如下所示:

#application.css.scss
/*
 *
 *= require_self
 *= require_tree .
*/

@import "bootstrap";

...

.scss在文件中使用该导入非常重要。否则它将无法正常工作。

说得通?

于 2013-08-24T04:36:40.927 回答
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
*/
于 2013-08-21T07:53:40.137 回答