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它的名字。

現在至少它適合我。