Ich habe also eine app/assets/stylesheets/
Verzeichnisstruktur, die ungefähr so aussieht:
|-dialogs
|-mixins
|---buttons
|---gradients
|---vendor_support
|---widgets
|-pages
|-structure
|-ui_elements
In jedem Verzeichnis gibt es mehrere Sass-Partials (normalerweise * .css.scss, aber ein oder zwei * .css.scss.erb).
Ich gehe vielleicht von viel aus, aber Rails MÜSSEN aufgrund von *= require_tree .
application.css automatisch alle Dateien in diesen Verzeichnissen kompilieren , oder?
Ich habe kürzlich versucht, diese Dateien neu zu strukturieren, indem ich alle Farbvariablen entfernt und in einer Datei im app/assets/stylesheets
Stammordner (_colors.css.scss) abgelegt habe. Ich habe dann eine Datei im app/assets/stylesheets
Stammordner namens master.css.scss erstellt, die folgendermaßen aussieht:
// 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";
Ich verstehe nicht wirklich, wie Rails die Reihenfolge der Asset-Kompilierung handhabt, aber es ist offensichtlich nicht zu meinen Gunsten. Es scheint, dass keine der Dateien erkennt, dass Variablen oder Mixins importiert werden. Daher werden Fehler ausgegeben, und ich kann nicht kompilieren.
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)
Die Variable $dialog_divider_color
ist in _colors.css.scss klar definiert und _master.css.scss
importiert Farben und alle meine Mixins. Aber anscheinend haben Rails dieses Memo nicht bekommen.
Gibt es eine Möglichkeit, diese Fehler zu beheben, oder muss ich alle meine Variablendefinitionen sowie alle Mixin-Importe wieder in jede einzelne Datei einfügen?
Leider scheint dieser Typ nicht zu glauben, dass es möglich ist, aber ich hoffe, er liegt falsch. Alle Gedanken werden sehr geschätzt.