Rails 4:无法启动Bootstrap

时间:2014-12-07 20:39:02

标签: ruby-on-rails twitter-bootstrap rubygems asset-pipeline

我正在关注"在Rails中构建轮询应用程序"的Tuts +教程。我已经按照每个基本步骤来配置应用程序。

使用' bootsrap-sass'安装gem后,他只需将*= require bootstrap添加到 application.css 文件中,即可在服务器上看到更改后的结果。但是,我收到以下错误..

本地主机:3000

Sprockets::FileNotFound in Polls#index
couldn't find file 'bootstrap'
(in /RAILS/tutspolls/app/assets/stylesheets/application.css:13)

Extracted source (around line #5):

  <html>
  <head>
    3 <title>Tutspolls</title>
     4 <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
     5 <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
     6 <%= csrf_meta_tags %>
  </head>

这就是我的文件看起来像..

Gemfile.rb

source 'https://rubygems.org'


gem 'rails', '4.1.6'
gem 'sqlite3'
gem 'sass-rails', '~> 4.0.5'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'haml-rails'
gem 'pry-rails'

gem 'bootstrap-sass'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0',          group: :doc

gem 'spring',        group: :development

group :test do 
    gem 'factory_girl_rails'
    gem 'minitest-rails'
end

样式表/ application.css

*= require bootstrap
*= require_tree .
*= require_self
*/

..并且已添加到 config / application.rb

config.sass.preferred_syntax = :sass

通过谷歌搜索以及Stackoverflow上的类似问题,我发现类似问题的答案对我不起作用。我的猜测是,其他它是版本问题,或者仅仅是我对资产管道和宝石架构之间缺乏了解。

2 个答案:

答案 0 :(得分:1)

根据readme你需要:

1)删除旧application.css并创建application.css.scss

2)在新application.css.scss中包含以下内容:

@import "bootstrap-sprockets";
@import "bootstrap";
@import "bootstrap-sprockets"之前

并且必须导入@import "bootstrap"

我看到你提到了stylesheets/application.rb文件。这是什么?为什么在sass文件中使用.rb语法?为什么使用*=代替@import?导入bootstrap-sprockets的位置?你为什么跳过它?

答案 1 :(得分:1)

在查看Bootstrap的版本之后,我意识到教程稍微过时了,所以我从版本bootstrap-sass的默认'~> 3.2.0'切换到~> 3.1.1并且效果很好。

显然最新版本的bootstrap-sass不支持*= require bootstrap,而是使用自述文件中最新的@import。在早期版本中,我不需要使用@import 'bootstrap-sprockets' when utilizing * =`。