2012-11-21 5 views
1

Essayant de traquer certaines interactions délicates. Peut-être que vous pouvez voir quelque chose que j'ai raté. Merci d'avoir pris un moment pour regarder ça! Voici le scénario:Rails 3 + Twitter Bootstrap + configuration SASS

  • J'utilise sass-twitter-bootstrap github repo. Ont copié sur l'ensemble complet des fichiers SCSS dans mon actif/twitter répertoire

Quand mon application.css ressemble à ceci:

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

Rafraîchissant la page d'accueil me donne cette erreur:

Undefined variable: "$baseLineHeight". 
    (in /Volumes/MonsterHD/mydev/repsurv/app/assets/stylesheets/twitter/_accordion.scss) 

Quand mon application.css ressemble à ceci:

*= require_self 
*= require twitter/bootstrap 

Ensuite, je ne reçois aucune erreur, mais mon custom.css.scss n'est pas appliqué.

Et mes custom.css.sccs ressemble à ceci:

@import "twitter/bootstrap"; 

/* universal */ 
html { 
    overflow-y: scroll; 
} 
body { 
    padding-top: 60px; 
} 
section { 
    overflow: auto; 
} 
textarea { 
    resize: vertical; 
} 
.center { 
    text-align: center; 
} 
.center h1 { 
    margin-bottom: 10px; 
} 

#logo { 
    float: left; 
    margin-right: 10px; 
    font-size: 1.7em; 
    color: #fff; 
    text-transform: uppercase; 
    letter-spacing: -1px; 
    padding-top: 9px; 
    font-weight: bold; 
    line-height: 1; 
} 
#logo:hover {color: #fff; 
    text-decoration: none; 
} 

Voici mon fichier bijou:

source 'https://rubygems.org' 

gem 'rails' 
gem 'american_date' 
gem 'will_paginate' 
gem 'bootstrap-will_paginate' 
gem 'jquery-rails' 
gem 'sass-rails' 

group :development, :test do 
    gem 'sqlite3' 
    gem 'hirb' 
    gem 'pry' 
    gem 'pry-rails' 
end 


# Gems used only for assets and not required 
# in production environments by default. 

group :assets do 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

group :development, :test do 
    gem 'rspec-rails' 
    gem 'factory_girl_rails' 
end 

group :test do 
    gem 'capybara' 
    gem 'faker' 
    gem 'launchy' 
end 

group :production do 
    gem 'pg' 
end 
+0

avez-vous écrit '@import" twitter/bootstrap ";' dans votre custom.css.sccs? –

+0

oui. CHeck ci-dessus, j'ai corrigé une erreur de formatage :) Aussi j'ai fait un actif: nettoyer et précompiler et ça n'aide pas. – pitosalas

+0

ne précompile pas les ressources en développement, car cela peut vous faire croire que les fichiers que vous chargez en développement (paresseux-compilés) ne fonctionnent pas ... parce que les ressources compilées peuvent avoir préséance - vous en aurez deux copies. –

Répondre

5

Vous ne voulez pas *= require_tree . que cette volonté, comme vous l'avez vu , exige tout. Vous voulez *= require_directory . qui n'aura besoin que de fichiers à la racine du répertoire (c'est-à-dire qu'il ne descendra pas dans les sous-répertoires).

Comme une autre approche, ce que j'utilisé dans une configuration récente du projet comme le vôtre:

application.css.scss:

/* 
*= require_self 
*/ 

$logo_green: #3b5263; 

@import 'smoothness/jquery-ui-1.8.21.custom.css'; 
@import 'bootstrap_and_overrides.css.scss'; 
@import 'content.css.scss'; 

bootstrap_and_overrides.css.scss:

// Set the correct sprite paths 
$iconSpritePath: image-url('glyphicons-halflings.png'); 
$iconWhiteSpritePath: image-url('glyphicons-halflings-white.png'); 

// override bootstrap colors 
$linkColor: lighten(#355c74, 10%); 

@import 'bootstrap'; 
body { padding-top: $navbarHeight + 10px; } 
@import 'bootstrap-responsive'; 
.... 

Et puis mon content.css.scss contient tous mes trucs spécifiques à l'application.

Questions connexes