我正在关注"在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上的类似问题,我发现类似问题的答案对我不起作用。我的猜测是,其他它是版本问题,或者仅仅是我对资产管道和宝石架构之间缺乏了解。
答案 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
* =`。