Pregunta sobre css, twitter-bootstrap, ruby-on-rails, asset-pipeline – Rails Active Admin css en conflicto con Twitter Bootstrap css

40

Soy algo nuevo en la cartera de activos de Rails, así que podría estar haciendo algo mal. Estoy tratando de usar Active Admin para mi backend y twitter bootstrap css para mi aplicación front-end.

Agregué el bootstrap.css a/ app / asset / stylesheets luego también agregó:

<code>//= require bootstrap
</code>

a application.css - luego hice una precompilación de los activos localmente

Parece que funciona bien, pero algunos de los estilos no están llegando exactamente y creo que se debe a que el css del administrador activo lo está anulando.

Mi entendimiento es que la aplicación compila los activos css en el activo público css de la aplicación y la aplicación usa ese archivo cuando se ejecuta.

Necesito separar de alguna manera los dos y hacer que se usen.twitter bootstrap css como el css principal en la parte frontal y tal vez dígale que no lo usecss del administrador activo archivos en la parte frontal.

¿Cuál es la mejor manera de hacer esto?

¿Por qué ActiveAdmin no solo cambia sus archivos de clase para usar un prefijo como_active-admin- ¿Para que no entren en conflicto con otra cosa? Como lo hacen las bibliotecas de C Creo que esto es un error en ActiveAdmin. Chloe

Tu respuesta

3   la respuesta
28

ideo, Ryan le muestra cómo evitar que ActiveAdmin CSS se introduzca en su aplicación principal CSS.

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

Moviendo la información del video a la respuesta

En el archivo application.css eliminas:

*= require_tree .

Para los carriles 4,Jiten K sugiere agregar esto aproduction.rb:

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

Sin embargo, uno de los comentarios sobre esa respuesta de SO dice que esto no es necesario. No lo he necesitado hasta ahora.

Este método funciona bien para mí en el modo de desarrollo, pero en producción tengo un problema cuando ejecutobundle exec rake assets:precompile: en mi caso, los archivos css terminan mezclados y bootstrap.css es sobrescrito por ActiveaAdmin. ¿Alguna idea?. ¡Gracias! CristianOrellanaBak
MattSlay tiene razón ... Ryan's RailsCast (# 284) le mostrará cómo solucionar esto (todo esto se debe al "require_tree" en application.css). Eliminar / editar que resolverá el problema de CSS. craig.kaminsky
pero pero perorequire_tree . es la magia que permite que todos sus archivos CSS se conviertan mágicamente en uno solo por Rails ... esta respuesta es excesiva y no debe ser aceptada AlexChaffee
9

Para mi cambiandoapplication.css A continuación se resuelve el problema:

<code> *= require bootstrap
 *= require_tree .
 *= stub "active_admin"
</code>
Esto parece estar funcionando para mí, gracias. No he podido averiguar exactamente quéstub ¿Te importa darme una pista rápida? justinraczak
132

y ​​pude arreglarlo moviéndome

<code>app/assets/stylesheets/active_admin.css.scss
</code>

a

<code>vendor/assets/stylesheets/active_admin.css.scss
</code>

Los activos activos de administración.debería estar envendor/ como se menciona en elguía de rieles:

"El proveedor / los activos son para activos que son propiedad de entidades externas, como el código de los complementos de JavaScript y los marcos de CSS".

También resolvió el problema para mí, para archivos .scss y .js, por lo que sigue siendo válido para los rieles 5. + Jules Corb
Tenía el mismo problema con el CSS personalizado que quería agregar. Esta solución funcionó para mí. Jefrey Bulla
no funciona para mi theDazzler
Funciona bien cuando se ejecutabundle exec rake assets:precompile?. En mi caso, los archivos css terminan mezclados y bootstrap.css se sobrescribe con activeadmin. ¿Alguna idea?. CristianOrellanaBak

Preguntas relacionadas