2011-10-06 19 views
8

Ho creato una nuovissima app Rails 3.1. Ho aggiunto il file CSS di bootstrap di Twitter in app/assets/stylesheets/bootstrap.min.css. Ecco il codice relativoBootstrap di Twitter ha CSS non valido in base alla pipeline delle risorse di Rails 3.1 durante la precompilazione?

app/beni/fogli di stile/application.css (comprende l'albero, in modo bootstrap è inclusa)

/* 
* This is a manifest file that'll automatically include all the stylesheets available in this directory 
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at 
* the top of the compiled file, but it's generally better to create a new file per style scope. 
*= require_self 
*= require_tree . 
*/ 

Gemfile (include execjs e therubyracer per la compilazione/comprimere)

group :development, :qa do 
    gem 'execjs' 
    gem 'therubyracer' 
end 
# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.1.0' 
    gem 'coffee-rails', '~> 3.1.0' 
    gem 'uglifier', '>= 1.0.3' 
end 

Poi ho eseguito il compito rastrello per precompilare beni

rake assets:precompile 

questo f affligge con il seguente errore

Invalid CSS after ".inputs-list li+": expected number or function, was "li" 

che CSS è nel file di bootstrap (".inputs-list li + Li" è il selettore).

Tuttavia, se corro

rake assets:precompile RAILS_ENV=development 

ora funziona benissimo. Risulta che se cambio config/ambienti/production.rb di non comprimere i file:

config.assets.compress = false 

poi il comando originale funziona anche (senza specificare ambiente di sviluppo).

Quindi, come rintracciare l'errore? Posso vivere con la disattivazione della compressione per ora, ma ovviamente qualcosa non va. Rails? Pignoni? The Ruby Racer? Uglifier?

risposta

4

Ho risolto questo problema utilizzando la versione non ridotta di Bootstrap. Verrà comunque compilato quando è in esecuzione rake assets:precompile quindi non è un problema :)

+0

ho pensato che ho provato la versione non minified, come pure - e ancora non funzionava. Accetterò la tua risposta, nel caso in cui mi sia davvero dimenticato di provare questo. In ogni caso, ho provato ancora oggi su un'app rails 3.1.1, e ha funzionato bene. Con entrambe le versioni miniate e non minificate. – davekaro

+0

Buono a sapersi che in Rails 3.1.1 funziona benissimo :) – Ian

6

Si consiglia di utilizzare una delle librerie che converte il bootstrap in sass e lo incorpora nella pipeline di asset. In questo modo avrai incorporato il JS, puoi modificare le variabili utilizzate da bootstrap in un file preboot.scss e scegliere le funzioni da incorporare. Potrai anche eseguire l'upgrade utilizzando il bundler.

Io uso bootstrap-sass e funziona benissimo: https://github.com/thomas-mcdonald/bootstrap-sass

+0

L'ho preso in considerazione ... ma questo aggiunge solo più complessità che non volevo al momento. Volevo solo rilasciare il file CSS e farlo. – davekaro

+1

Approvo questo metodo. – nobody

Problemi correlati