必要なのは、このファイルを Rails アセット パイプライン経由でコンパイルすることです。
resources/themes/templates/resources/sass/my-ext-theme.scss
これを機能させるために、いくつかのことを難しい方法で学びました。
- ExtJS は SASS を使用してコンパイルし (Rails も同様)、コンパスには青写真とコンパスの CSS キットが含まれています。Compass は Rails では機能しません。CSS ツールキットを含まない gem "compass-rails" を使用する必要があります。メインの compass gem のみがこれらのツールキットを持っています。これは compass-rails の依存関係であるため、compass-rails をバンドルする場合はそれらを取得する必要があります。それらは sass.load_paths 構成に含まれている必要があります。コンパスレールなしで「コンパス」ジェムを含めると、奇妙なエラーが発生し、解決しようとするとレールアセットパイプラインのエキスパートになります!
- ExtJS は古いバージョンの SASS を使用します。Rails が使用する新しいバージョンは、モジュール内で関数や mixin を定義することを好みません。これを修正するには、表示されるエラー (常に関数または mixin の定義) を調べて、それらを _functions または _mixins ファイルに移動します。(詳細: sass-3.1.8 へのアップグレード後にエラーが発生する)
起動して実行する方法は次のとおりです。
これを config/application.rb に入れます:
# Set up our ExtJS SASS build environment
config.sass.load_paths << "#{Rails.root}/vendor/assets/stylesheets"
config.sass.load_paths << "#{Rails.root}/vendor/assets/frameworks/compass/stylesheets"
config.sass.load_paths << "#{Rails.root}/vendor/assets/frameworks/blueprint/stylesheets"
ExtJS スタイルシート (SDK の ext4/default ディレクトリ) をここに配置します。
vendor/assets/stylesheets/ext4/default/
my-ext-theme.scss を app/assets/stylesheet に配置し、通常の Rails と同じように使用します。このコードを呼び出します:
@import 'ext4/default/all';
これですべての ExtJS 定義が取り込まれます。