Entonces, tengo una app/assets/stylesheets/
estructura de directorio que se parece a esto:
|-dialogs
|-mixins
|---buttons
|---gradients
|---vendor_support
|---widgets
|-pages
|-structure
|-ui_elements
En cada directorio, hay varios parciales sass (normalmente * .css.scss, pero uno o dos * .css.scss.erb).
Podría estar asumiendo mucho, pero los rieles DEBERÍAN compilar automáticamente todos los archivos en esos directorios debido a *= require_tree .
en application.css, ¿verdad?
Recientemente intenté reestructurar estos archivos eliminando todas las variables de color y colocándolas en un archivo en la app/assets/stylesheets
carpeta raíz (_colors.css.scss). Luego creé un archivo en la app/assets/stylesheets
carpeta raíz llamado master.css.scss que se ve así:
// Color Palette
@import "colors";
// Mixins
@import "mixins/buttons/standard_button";
@import "mixins/gradients/table_header_fade";
@import "mixins/vendor_support/rounded_corners";
@import "mixins/vendor_support/rounded_corners_top";
@import "mixins/vendor_support/box_shadow";
@import "mixins/vendor_support/opacity";
Realmente no entiendo cómo rieles maneja el orden de compilación de activos, pero obviamente no está a mi favor. Parece que ninguno de los archivos se da cuenta de que se están importando variables o mixins, por lo que arroja errores y no puedo compilar.
Undefined variable: "$dialog_divider_color".
(in /home/blah/app/assets/stylesheets/dialogs/dialog.css.scss.erb)
Undefined mixin 'rounded_corners'.
(in /home/blah/app/assets/stylesheets/widgets.css.scss)
La variable $dialog_divider_color
está claramente definida en _colors.css.scss, y _master.css.scss
está importando colores y todos mis mixins. Pero aparentemente Rails no recibió ese memo.
¿Hay alguna forma de corregir estos errores, o tendré que recurrir a volver a poner todas mis definiciones de variables en cada archivo individual, así como todas las importaciones de mixin?
Desafortunadamente, este tipo no parece pensar que sea posible, pero espero que esté equivocado. Cualquier idea es grandemente apreciada.