SASSファイルを動的にロードすることは可能ですか?
Rails Initializer でグローバル定数を宣言するとしBRAND
ます。私が欲しいのは、定数で指定された名前のSASSファイルをインポートすることBRAND
です。
@import BRAND
「application.sass」のようなものが欲しいです。どのように可能か教えてください。ありがとう。
SASSファイルを動的にロードすることは可能ですか?
Rails Initializer でグローバル定数を宣言するとしBRAND
ます。私が欲しいのは、定数で指定された名前のSASSファイルをインポートすることBRAND
です。
@import BRAND
「application.sass」のようなものが欲しいです。どのように可能か教えてください。ありがとう。
アセット パイプラインで複数のプリプロセッサを使用できるためERB
、SASS プロセッサが機能する前に使用できます。これを行うには、.erb
前処理したいファイルのファイル名に追加するだけです。例えば:
config/initializers/brand.rb:
BRAND = 'mybrand'
app/assets/stylesheets/_mybrand.css.scss:
$brand-color: steelblue;
アプリ/アセット/スタイルシート/main.css.scss.erb:
@import '<%= BRAND %>';
body {
background: $brand-color;
}
ちなみに、Asset Pipelinerequire
の Rails Guide で提案されているように、SASS を使用する場合は Sprockets のディレクティブを使用しないでください。
複数の Sass ファイルを使用する場合は、通常、これらの Sprockets ディレクティブの代わりに Sass @import ルールを使用する必要があります。Sprockets ディレクティブを使用すると、すべての Sass ファイルが独自のスコープ内に存在し、変数または mixin が定義されたドキュメント内でのみ使用可能になります。
次のように (haml) レイアウト ファイルで実行できます。
= stylesheet_link_tag BRAND, :media => 'all'
(または、ERB を使用している場合は <% %> を追加します)。