Quindi, ho una app/assets/stylesheets/
struttura di directory simile a questa:
|-dialogs
|-mixins
|---buttons
|---gradients
|---vendor_support
|---widgets
|-pages
|-structure
|-ui_elements
In ogni directory, ci sono più parziali sass (di solito * .css.scss, ma uno o due * .css.scss.erb).
Potrei supporre molto, ma rails DOVREBBE compilare automaticamente tutti i file in quelle directory a causa di *= require_tree .
application.css, giusto?
Recentemente ho provato a ristrutturare questi file rimuovendo tutte le variabili di colore e inserendole in un file nella app/assets/stylesheets
cartella principale (_colors.css.scss). Ho quindi creato un file nella app/assets/stylesheets
cartella principale chiamato master.css.scss che assomiglia a questo:
// 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";
Non capisco davvero come rails gestisca l'ordine di compilazione delle risorse, ma ovviamente non è a mio favore. Sembra che nessuno dei file si renda conto di avere variabili o mixin importati, quindi genera errori e non riesco a compilare.
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 variabile $dialog_divider_color
è chiaramente definita in _colors.css.scss e _master.css.scss
importa i colori e tutti i miei mixin. Ma a quanto pare Rails non ha ricevuto quel promemoria.
C'è un modo per correggere questi errori o dovrò ricorrere a rimettere tutte le mie definizioni di variabili in ogni singolo file, così come tutte le importazioni di mixin?
Sfortunatamente, questo ragazzo non sembra pensare che sia possibile, ma spero che si sbagli. Tutti i pensieri sono molto apprezzati.