twitter-bootstrap - instalar - sprockets-rails
cómo detener un archivo active_admin css.scss cambiando todo el aspecto de mi aplicación (5)
Tengo un proyecto de ruby on rails, ruby2 y rails4. Tengo la gema bootstrap-sass instalada. Recientemente instalé la gema activeadmin, que agrega un archivo active_admin.css.scss a mi carpeta de aplicaciones / estilos:
// SASS variable overrides must be declared before loading up Active Admin''s styles.
//
// To view the variables that Active Admin provides, take a look at
// `app/assets/stylesheets/active_admin/mixins/_variables.css.scss` in the
// Active Admin source.
//
// For example, to change the sidebar width:
// $sidebar-width: 242px;
// Active Admin''s got SASS!
@import "active_admin/mixins";
@import "active_admin/base";
// Overriding any non-variable SASS must be done after the fact.
// For example, to change the default status-tag color:
//
// .status_tag { background: #6090DB; }
Ahora los botones y formularios de mi proyecto, que diseñé con la clase de arranque, se ven todos diferentes. Es como que active_admin.css.scss está superando todo mi proyecto. Cuando comento las siguientes líneas como esta:
// @import "active_admin/mixins";
// @import "active_admin/base";
Mis botones originales vuelven, pero ActiveAdmin es un desastre para mirar. ¿Alguna idea de cómo puedo resolver este problema? Simplemente haga que active_admin.css.scss se ocupe de mis cosas de actice_admin, y deje el resto en paz.
Por lo general, el área de administración tiene su propio diseño y activos (javascripts y hojas de estilo). Dudo que haya necesidad de incluir activos active_admin en las páginas de administración de ninguna de sus aplicaciones.
Si su application.css incluye todas las hojas de estilo de forma predeterminada con esto:
*= require_true .
Luego, copiar los activos de terceros en la carpeta de activos romperá su estilo tal como lo describe. Considere cambiarlo para incluir hojas de estilo explícitamente o utilizando los métodos descritos en este artículo:
http://mrdanadams.com/2011/exclude-active-admin-js-css-rails/
El artículo tiene 3 años, por lo que es posible que haya que cambiar partes de él, pero la idea está ahí.
Gracias a un seguimiento de la investigación iniciada por James Chen a continuación (¡y gracias a Ryan Bates!) Encontré este video: http://railscasts.com/episodes/284-active-admin
Hacia el final del video, soluciona mi problema. No me importaría, pero vi la primera parte del video hace varios días para instalar la gema active_admin y luego dejé de mirar.
Básicamente, si tiene sass instalado, cambie su archivo application.css a application.css.scss y algunos otros bits y bobs pequeños.
Una mejor solución que funciona para Rails 4 es mover active_admin css y javascript a / vendor. Para cargar los activos correctamente en producción, agregue las siguientes líneas a config/environments/production.rb
:
config.assets.precompile +=
%w( #{Rails.root}/vendor/assets/stylesheets/active_admin.css.scss)
config.assets.precompile +=
%w( #{Rails.root}/vendor/assets/javascripts/active_admin.js.coffee)
Encontré la solución en este problema .
Gracias a James Chen y al enlace al blog de Dan Adam. Decidí consolidar los dos artículos en esta respuesta. Los siguientes pasos deberían resolver el problema en Rails 4.0:
1 - Asegúrese de que los activos de Active Admin no se encuentren en las carpetas raíz que se aplican a toda la aplicación:
cd app/assets/javascripts
mkdir admin
mv active_admin.js.coffee admin/
cd ../stylesheets
mkdir admin
mv active_admin.css.scss admin/
2 - Y en realidad, asegúrese de que los activos no estén incluidos, editando ambos archivos assets/stylesheets/application.css
y assets/javascripts/application.js
change require_tree .
to require_directory .
3 - Ahora necesita cambiar su iniciador de Active Admin para tomar los dos archivos que acaba de excluir en los pasos 1 y 2: en file config/initializers/active_admin.rb
agregue las siguientes líneas:
config.clear_stylesheets!
config.register_stylesheet ''admin/active_admin.css''
config.clear_javascripts!
config.register_javascript ''admin/active_admin.js''
Como @Karen señaló en esta respuesta Rails Active Admin css en conflicto con Twitter Bootstrap css , solo podría mover la hoja de estilo active_admin.css.scss
de la app/assets/stylesheets
a vendor/assets/stylesheets