2

を使用するサンプルスクリプトがあります

dojo.require("dojo.parser");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.layout.TabContainer");
dojo.require("dojox.grid.DataGrid");
dojo.require("dijit.Tree");
dojo.require("dojo.data.ItemFileReadStore");

道場の縮小ビルドを作成したいので、このプロファイルを使用します

dependencies = {
    stripConsole    : "normal",
    selectorEngine  : "acme",
    optimize        : "closure",
    layerOptimize   : "closure",
    cssOptimize     : "comments.keepLines",
    mini            : true,
    internStrings   : true,
    localeList      : "en-us",
    releaseName     : "dojo.custom",
    action          : "release",
    optimize        : "shrinksafe",
    layerOptimize   : "shrinksafe",

    layers : [
        {
            name         : "dojo.js",
            dependencies : [ 
                "dojo.parser",
                "dojo.data.ItemFileReadStore",
                "dojox.grid.DataGrid",
                "dijit.layout.BorderContainer",
                "dijit.layout.ContentPane",
                "dijit.layout.TabContainer",
                "dijit.Tree"
            ]
        }
    ],
    prefixes: [ [ "dijit", "../dijit" ], [ "dojox", "../dojox" ] ]
}

はい、ビルダーは私のhtmlページに含める巨大なdojo.jsファイルをコンパイルしますが、それでも多くのxhrリクエストがあります。システムは、明示的に使用しないスクリプトをロードします。これがスクリーンショットです

4

1 に答える 1

2

面白い。

ブラウザーが圧縮バージョンを正常に見つけてロードしていることを確認しますか?

ブラウザーは _base.js を探していますが、これは既にそのファイルに焼き付けられているはずです。

アップデート

Tommi - dojo.js レイヤーは常にビルド システムによってビルドされます。明示的に宣言する必要はありません。依存関係とともに明示的に宣言した場合の影響はわかりません。これはうまくいくかもしれませんが、うまくいかないかもしれません。依存関係が通常の dojo.js コンテンツをオーバーライドしている可能性があります。

私が通常行うことは、システムに dojo.js をビルドさせてから、必要なすべての dijit/dojox を含むレイヤーを作成し、それをデプロイすることです。また、通常、カスタム内容を含む 3 番目の別のファイルを作成します。

私はそれを試してみます。私が考える鍵は、dojo.js とは別のレイヤーを作成することです。(ただし、ページには通常の dojo.js を含めます)。

于 2012-03-02T02:02:50.780 に答える