私はあるファイル(application.css.scss)で定義されたmixinを別の(home.css.scss)で参照しようとしています。アプリケーションを自宅にインポートしようとしましたが、未定義のミックスインエラーが発生します。railsのscssファイル間でミックスインを共有する3.1
すべてのファイルを自動的にインポートする方法はありますか、ファイル間のインポートを管理する最適な方法はありますか?
私はあるファイル(application.css.scss)で定義されたmixinを別の(home.css.scss)で参照しようとしています。アプリケーションを自宅にインポートしようとしましたが、未定義のミックスインエラーが発生します。railsのscssファイル間でミックスインを共有する3.1
すべてのファイルを自動的にインポートする方法はありますか、ファイル間のインポートを管理する最適な方法はありますか?
私はまだ3.1にジャンプすることができませんでしたが、Compass & Sassをかなり使っています。あなたの実際のCSSを生成するSassとは別に、mixin/definition sassを管理することをお勧めします。このように、mixinファイルは、必要に応じてCSSライブラリを繰り返し生成することなく、コードライブラリのように自由に扱うことができます。
だから、あなたは可能性があります。このように/* my-mixin-concern.scss */
$default_foo: 123px !default;
@mixin some-concern($foo: $default_foo) {
// do something
}
/* application.scss */
$default_foo: 321px; // optionally, pre-set the default value before import.
@import 'my-mixin-concern';
p { @include some-concern; }
/* home.scss */
@import 'my-mixin-concern';
body.home p { @include some-concern(9000px); }
を明示的に使用すると、コードライブラリにそうだろうかと同様に、各SCSSファイルのすべての要件をインポートしています。
ピュアRailsのソリューション
ステップ1.名前の変更
application.css -> application.css.scss
ステップ2.リファクタリング
// application.css.scss
/*
*= require_self
*/
@import "mixins.css.csss"
@import "project.css.scss"