2012-04-16 11 views
36

Sono un po 'nuovo alla pipeline di asset Rails, quindi potrei fare qualcosa di sbagliato. Sto cercando di utilizzare Active Admin per il mio backend e twitter bootstrap css per la mia applicazione front-end.Rails Active css amministratore in conflitto con Twitter Bootstrap css

ho aggiunto il bootstrap.css a /app/attività/fogli di stile poi anche aggiunto:

//= require bootstrap 

a application.css - poi ho fatto un precompilazione delle attività a livello locale

Sembra per funzionare bene, ma alcuni degli stili non vengono eseguiti esattamente e penso che sia perché il css dell'amministratore attivo lo sta ignorando.

La mia comprensione è che l'applicazione compila gli asset css nella risorsa css dell'applicazione pubblica e l'applicazione utilizza tale file durante l'esecuzione.

Ho bisogno di separare in qualche modo i due e renderlo utilizzare Twitter bootstrap css come il css principale sul front-end e forse dire che non usare i CSS di amministrazione attiva file sul front-end.

Qual è il modo migliore per farlo?

risposta

27

Hai guardato il video RailsCasts utilizzando ActiveAdmin? Nel video, Ryan ti mostra come impedire al CSS ActiveAdmin di passare dall'app principale alla CSS.

http://railscasts.com/episodes/284-active-admin

Trasferimento delle informazioni da video in risposta

Nella application.css si rimuove:

*= require_tree . 

Per rotaie 4, Jiten K suggerisce di aggiungere questo per production.rb:

config.assets.precompile += ['active_admin.css'] 

Tuttavia uno dei commenti su tale risposta SO dice che questo non è necessario. Non ne ho avuto bisogno finora.

+3

MattSlay è corretta ... di Ryan Railscast (# 284) vi mostrerà come ottenere intorno a questo (è tutto a causa della "require_tree. "in application.css).Rimozione/modifica che risolverà il problema CSS. –

+0

Questo metodo funziona bene per me in modalità sviluppo, ma in produzione ho un problema quando eseguo 'bundle exec rake assets: precompile': nel mio caso, i file css finiscono misti e bootstrap.css viene sovrascritto da ActiveaAdmin. Qualche idea?. Grazie! – CristianOrellanaBak

+0

ma ma 'require_tree .' è la magia che consente a tutti i tuoi file CSS di essere magicamente sfumati in uno da Rails ... questa risposta è eccessiva e dovrebbe essere non accettata – AlexChaffee

125

Ho avuto lo stesso problema, ed era in grado di risolvere il problema spostando

app/assets/stylesheets/active_admin.css.scss 

a

vendor/assets/stylesheets/active_admin.css.scss 

Le attività di amministrazione attivi dovrebbero essere in vendor/ come accennato nel rails guide:

"Fornitore/beni è per le attività che sono di proprietà di entità esterne , come il codice per i plugin JavaScript e i framework CSS. "

+0

Funziona bene quando si eseguono le risorse' bundle exec rake: precompilare '?. Nel mio caso, i file css finiscono misti e bootstrap.css viene sovrascritto da activeadmin. Qualche idea?. – CristianOrellanaBak

+0

non funziona per me – theDazzler

+9

E fare lo stesso per 'active_admin.js'. Spostalo su 'vendor/assets/javascripts/active_admin.js' – Arcolye

3

Per me cambia application.css al seguente risolve il problema:

*= require bootstrap 
*= require_tree . 
*= stub "active_admin" 
+0

Questo sembra funzionare per me, grazie. Non sono stato in grado di capire esattamente cosa 'stub' fa, ti dispiacerebbe darmi un rapido suggerimento? – justinraczak

Problemi correlati