1

SASSファイルを動的にロードすることは可能ですか?

Rails Initializer でグローバル定数を宣言するとしBRANDます。私が欲しいのは、定数で指定された名前のSASSファイルをインポートすることBRANDです。

@import BRAND「application.sass」のようなものが欲しいです。どのように可能か教えてください。ありがとう。

4

2 に答える 2

1

アセット パイプラインで複数のプリプロセッサを使用できるため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 が定義されたドキュメント内でのみ使用可能になります。

于 2012-11-18T12:47:12.013 に答える
0

次のように (haml) レイアウト ファイルで実行できます。

= stylesheet_link_tag BRAND, :media => 'all'

(または、ERB を使用している場合は <% %> を追加します)。

于 2012-11-18T09:29:18.247 に答える