4

我想,当我打电话compass install bootstrap对我的Rails 3.2的应用程序安装引导,萨斯宝石,但遇到这样的错误引导,萨斯“引导”的Rails 3.2不安装

我已经安装在我的Gemfile宝石:

gem 'compass', '~> 0.12.2' 
group :assets do 
    ... 
    gem 'sass-rails', '~> 3.2.4' 
    gem 'compass-rails', '~> 1.0.3' 
    gem 'bootstrap-sass', '~> 2.1.1.0' 
end 

我已经把import语句我application.css.scss文件:

@import "bootstrap"; 

我必需的引导在我的application.js:

//= require jquery 
//= require jquery_ujs 
//= require bootstrap 
... 

而且我必需的引导,萨斯在我config.ru文件:

require 'bootstrap-sass' 

require ::File.expand_path('../config/environment', __FILE__) 

run MYAPP::Application 

任何人有任何的想法是什么问题可能会遇到同样的问题吗?

这里有一个自举青菜git的:https://github.com/thomas-mcdonald/bootstrap-sass.git

回答

2

想通了......

因此,要获得安装工作,我不得不打电话bundle exec compass install bootstrap。这在捆绑包的上下文中执行compass install bootstrap,其中包括所有的宝石。但是,这导致了更多的问题。

安装程序在我的assets/javascripts目录中写了几个新的引导程序JavaScript文件。在Rails 3.2中,这些由资产管道自动加载,但顺序错误,所以在我的浏览器控制台中,我收到了一个缺少构造函数的错误消息,并在未定义的对象上调用'popover'。经过挖掘,解决方案只是删除所有新生成的JavaScript文件,因为它们已经包含在application.js中的//= require bootstrap

0

你不需要的宝石这一点。只需将引导库(scss & js文件)复制到您的资产。 确保在@import'bootstrap'之前,application.css.scss中没有更多文本; 而且不需要编辑config.ru文件

也看看你的页面代码。 application.css中显示了什么? 你有没有在你的控制器继承ApplicationController的用户?

0

在你的宝石文件中,尝试保持引导宝石以外的资产。

源 'https://rubygems.org'

宝石 '轨道', '3.2.8'
宝石 '自举萨斯', '2.1.1'

而且然后运行命令

$ bundle install。

然后检查并确保使用命令安装引导程序。

$包列表

+0

这看起来不像是可行的。另外,它会包括生产中的宝石,我不想要这些宝石,因为我的资产将被预编译。 –

4

bootstrap-sass没有很好的文档记录,它需要我花一些时间来制定解决方法。 忘掉指南针。 的Gemfile:

gem 'bootstrap-sass', '~> 2.1.1.0' 
gem 'bootswatch-rails' 

使用bootswatch护栏宝石可以快速改变你的主题

资产/ stylessheets

,创建your_own_sytlesheet.css.scss

@import "bootswatch/cerulean/variables"; 

// Then bootstrap itself 
@import "bootstrap"; 

// Bootstrap body padding for fixed navbar 
body { padding-top: 60px; } 

// Responsive styles go here in case you want them 
@import "bootstrap-responsive"; 

// And finally bootswatch style itself 
@import "bootswatch/cerulean/bootswatch"; 

// Whatever application styles you have go last 
//@import "base"; 

您可以轻松更换主题,方法是用o替换cerulean它的名字。

现在至少它适合我。