5

Sto utilizzando l'ultimo ramo master della gemma bootstrap-rails e sto provando a modificare le variabili di bootstrap predefinite in modo compatibile con la pipeline di asset delle rotaie.Rails Asset Pipeline e Twitter Bootstrap Gem

Il mio file gemma ha queste gemme inclusi

gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git' 
gem 'uglifier', '>= 1.0.3' 
gem 'less-rails-bootstrap' 

ho incluso anche *= require bootstrap_and_overrides nel mio file application.css. Sono consapevole che i pignoni compila ogni singolo file css singolarmente e quindi non ci si può aspettare che più file css siano in grado di fare riferimento l'un l'altro. Quindi il file bootstrap_and_overrides.css.less include quanto segue:

@import "twitter/bootstrap/bootstrap"; 
body { padding-top: 80px; } 

//background-image: asset-url("background.png"); background-repeat:no-repeat; background-size: cover; } 

@import "twitter/bootstrap/responsive"; 

// Set the correct sprite paths 
@iconSpritePath: asset-path('twitter/bootstrap/glyphicons-halflings.png'); 
@iconWhiteSpritePath: asset-path('twitter/bootstrap/glyphicons-halflings-white.png'); 

// Set the Font Awesome (Font Awesome is default. You can disable by commenting below lines) 
@fontAwesomeEotPath: asset-path('fontawesome-webfont.eot'); 
@fontAwesomeWoffPath: asset-path('fontawesome-webfont.woff'); 
@fontAwesomeTtfPath: asset-path('fontawesome-webfont.ttf'); 
@fontAwesomeSvgzPath: asset-path('fontawesome-webfont.svgz'); 
@fontAwesomeSvgPath: asset-path('fontawesome-webfont.svg'); 

// Font Awesome 
@import "fontawesome"; 

// Your custom LESS stylesheets goes here 
// 
// Since bootstrap was imported above you have access to its mixins which 
// you may use and inherit here 
// 
// If you'd like to override bootstrap's own variables, you can do so here as well 
// See http://twitter.github.com/bootstrap/less.html for their names and documentation 
// 
// Example: 
// @linkColor: #ff0000; 

@navbarHeight: 60px; 
@navbarText: @white; 
@textColor: @orange; 
@navbarLinkColor: @white; 
@navbarBackground: darken(@linkColor, 15%); 
@navbarBackgroundHighlight: @linkColor; 

Tuttavia nessuno dei miei override lavorare sotto la pipeline di asset. Funzionano bene senza di essa. Qualcuno sa perché?

aggiornare il mio patrimonio Gem Group

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'less-rails' 
    # gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git' 
    # See https://github.com/sstephenson/execjs#readme for more supported runtimes 
    gem 'therubyracer', :platform => :ruby 
    gem 'uglifier', '>= 1.0.3' 
end 
+0

avete la gemma meno-rail nel vostro gruppo di asset? – Swift

+0

Faccio, domanda aggiornata con il mio gruppo di risorse gemma –

risposta

6

Esecuzione rake assets:precompile localmente prima della distribuzione risolto il mio problema di cui sopra.

3

Nel mio caso, la directory che i motori di asset gasdotti cercare le risorse non sono correttamente set-up, causare beni non correttamente compilati.

Sto usando bootstrap-sass, quindi la situazione potrebbe essere diversa. Ma nel mio caso, l'aggiunta del seguente codice a application.rb ha risolto il mio problema.

module ApplicationModuleName 
    class Application < Rails::Application 

    config.sass.load_paths = [] 
    config.sass.load_paths << "#{Rails.root}/app/assets/stylesheets" 
    %w(bootstrap-sass jstree-rails jquery-rails).each do |pkg| 
     config.sass.load_paths << "#{Gem.loaded_specs[pkg].full_gem_path}/vendor/assets/stylesheets" 
     config.assets.paths << "#{Gem.loaded_specs[pkg].full_gem_path}/vendor/assets/javascripts" 
    end 
    end 
end 

Prova corsa rails console e verificare il valore di load_paths o qualcosa di simile prima di applicare sopra (brutto) patch ..

+0

Le patch di cui sopra non sono valide perché 'sass' non è un attributo di' config'. Ottengo questi errori: '/app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/railtie/configuration.rb:85:in method_missing: metodo non definito sass per # (NoMethodError) ' –

+1

Ho eliminato il wrapper di moduli e classi all'ultimo post. Modificato l'esempio correttamente. – shigeya

+0

Grazie per aver condiviso il tuo approccio, anche se ho risolto il problema eseguendo 'rake assets: precompile' localmente prima della distribuzione e tutto è stato risolto. –

0

sto usando meno bootstrap con le rotaie 4.1 e 2.0 rubino ma ho risolto questo con l'aggiunta di questo al application.css.scss

*= require_tree . 
*= require bootstrap_and_overrides 
*= require_self 
Problemi correlati