4

ブラウザが最適化された JS バンドルをキャッシュしないようにするために、リクエスト URL に MD5 サムを含めたいと思います。私は次のようなものを試しました:

<script src="lib/require.js" data-main="app/main.js?md5=ABCD"></script>

ただし、クエリ文字列を導入すると、GET リクエストが/main.js. つまり、クエリ文字列が欠落してscriptsおり、パスから欠落しています。

data-mainで指定されたスクリプトのリクエストに、計算したハッシュを強制的にロードするにはどうすればよいですか? マークアップが生成されていることに注意してください。したがって、HTML ドキュメントの任意の場所にハッシュを挿入できます。

4

1 に答える 1

5

トリックは、urlArgs構成設定を使用することです。したがって、この例では、コードは次のようになります。

<script>
require = {
    urlArgs: 'md5=ABCD'
};
</script>
<script src="lib/require.js" data-main="app/main.js"></script>

ライブラリをロードする前にrequire、必ずグローバルオブジェクトを定義してください。require.js

これが機能するのは、RequireJS が起動時に次のコードを実行するためです (v2.1.10 以降、縮小されていないソースの 190 行を参照)。

//Allow for a require config object
if (typeof require !== 'undefined' && !isFunction(require)) {
    //assume it is a config object.
    cfg = require;
    require = undefined;
}

ブラウザーの開発ツールを確認すると、クエリ文字列に引数が表示されます。

ここに画像の説明を入力

于 2013-10-21T13:05:45.623 に答える