2

典型的な extjs サンプル アプリケーションには、次のようなファイルを参照して extjs ライブラリが含まれています。

ext-all.css ext-all.js

何百ものファイルを参照していることに注意して、これらのファイルを含める「レール 3.1 の方法」は何ですか? サブディレクトリ内のファイルの

(例: ext-4.0.2/resources/themes/stylesheets/ext4/default/_all.scss)

相対パスがあります:

(例: background-image:url('../../resources/themes/images/default/shared/shadow.png'))

require_tree などの多数の組み合わせを試しましたが、うまくいかないようです。

「提供」を台無しにする必要があるかどうか疑問に思っていますが、必要なドキュメントが見つからないようです。

4

2 に答える 2

1

必要なのは、このファイルを Rails アセット パイプライン経由でコンパイルすることです。

resources/themes/templates/resources/sass/my-ext-theme.scss

これを機能させるために、いくつかのことを難しい方法で学びました。

  1. ExtJS は SASS を使用してコンパイルし (Rails も同様)、コンパスには青写真とコンパスの CSS キットが含まれています。Compass は Rails では機能しません。CSS ツールキットを含まない gem "compass-rails" を使用する必要があります。メインの compass gem のみがこれらのツールキットを持っています。これは compass-rails の依存関係であるため、compass-rails をバンドルする場合はそれらを取得する必要があります。それらは sass.load_paths 構成に含まれている必要があります。コンパスレールなしで「コンパス」ジェムを含めると、奇妙なエラーが発生し、解決しようとするとレールアセットパイプラインのエキスパートになります!
  2. 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 定義が取り込まれます。

于 2012-02-23T18:37:42.137 に答える
0

ジェフ!ここで私の答えを見てください。あなたの問題は同じだと思います。

于 2011-06-15T17:15:25.073 に答える