したがって、app/assets/stylesheets/
次のようなディレクトリ構造があります。
|-dialogs
|-mixins
|---buttons
|---gradients
|---vendor_support
|---widgets
|-pages
|-structure
|-ui_elements
各ディレクトリには、複数のsassパーシャルがあります(通常は* .css.scssですが、1つまたは2つの* .css.scss.erb)。
私は多くのことを想定しているかもしれませんが*= require_tree .
、application.cssにあるため、railsはそれらのディレクトリ内のすべてのファイルを自動的にコンパイルする必要がありますよね?
最近、すべての色変数を削除してルートapp/assets/stylesheets
フォルダー(_colors.css.scss)のファイルに配置することにより、これらのファイルを再構築しようとしました。次に、app/assets/stylesheets
次のようなファイルをmaster.css.scssというルートフォルダーに作成しました。
// 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";
Railsがアセットのコンパイルの順序をどのように処理するかはよくわかりませんが、明らかに私の好みではありません。インポートされている変数またはミックスインがあることを認識しているファイルがないようです。そのため、エラーがスローされ、コンパイルできません。
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)
変数$dialog_divider_color
は_colors.css.scssで明確に定義されており、_master.css.scss
色とすべてのミックスインをインポートしています。しかし、どうやらレールはそのメモを受け取らなかったようです。
これらのエラーを修正する方法はありますか、それともすべての変数定義を個々のファイルに戻し、すべてのミックスインインポートに戻す必要がありますか?
残念ながら、この男はそれが可能だとは思わないようですが、私は彼が間違っていることを望んでいます。どんな考えでも大歓迎です。