0

MVC パターンに従って Extjs 4.2 を使用してアプリケーションを開発しました。プロジェクト フォルダは次のように設定されています。

WebContent
--> app
-->controller
-->model
-->store
-->view
app.html
app.js

app.js では、すべてのモデル、コントローラー、ストアを Ext.application の下に定義しました。お気に入り:

Ext.application({
name: 'MyProject',
autoCreateViewport: true,
models: [
'Model1',    
'Model2'
],
stores: [
'store1',
'store2'
]

(ビューとコントローラーも同様)

これはすべてうまくいきます。ここで、これらすべてのモデル、ストア、コントローラー、ビューを 1 つの app-all.js に連結し、それを app.html で使用する必要があります。Sencha cmd ツールを使用してそれを行う方法に関するネット上の多くの投稿を読みましたが、cmd ツールのインストールには制限があり、Maven を使用してビルド時に連結および縮小されたファイルを生成する必要があるため、どれも私には適用されませんでした。JSBuilder2を使えば、連結+縮小したapp.jsが取れるという解決策を見つけました。

問題は、この縮小されたファイルを使用すると、個々の js ファイルがまだすべてダウンロードされていることです。個々の js ファイルを削除したかのように、404 エラーが発生し、アプリケーションの読み込みに失敗します。

これは、app.js でモデル、ビュー、コントローラーを定義した方法によるものだと思います。彼らはまだそれぞれのフォルダで js クラス ファイルを探しています。

これに対する解決策があれば共有してください。

4

1 に答える 1

1

Ext.Loader の enabled プロパティ ( http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.Loader-cfg-enabled ) を使用してダイナミックローダーを無効にすることができます:

Ext.Loader.setConfig({ enabled: false })

このコードは、フレームワーク ファイルを含めた後、アプリケーション ファイルの前に配置する必要があります。

これにより、Ext JS がファイルをダウンロードしようとするのを防ぐことができます。使用するすべてのフレームワークとアプリケーション クラスがページに含まれていることを確認する必要があります。

于 2014-01-16T14:59:59.167 に答える