2012-03-08 17 views
12

私はRequireJS(jQueryバージョン)を使用しています。不要なキャッシングを防ぐために、スクリプトにGETパラメータを追加したいと思います。RequireJSのURLキャッシュ無効化パラメータ?

私はthe urlArgs parameterを使用しています。

({ 
    appDir: "../", 
    baseUrl: "scripts/", 
    urlArgs: "cache=v2", 
    ... 

次のようにその後、私はプロジェクトをビルド:

$ node ../../r.js -o app.build.js 

アプリ-buildディレクトリ内の出力は、以前と同じファイルである、両方require-jquery.jsを含み、require-jquery.js?cache=v2これは私のapp-build.jsファイルですこれは空白です。

index.htmlファイルにはcache=v2の参照がありません。ブラウザにページをロードすると、いずれのスクリプトにもcache=v2のパラメータが追加されていません。

何か間違っていますか?

答えて

0

私は、ライブアプリケーションを実行するために使用するbuild.jsファイルに対して、オプティマイザとは異なるbuild.jsファイルを使用してみます。あなたの説明に基づいて、オプティマイザスクリプトはurlArgsパラメータを適切に処理していないようです(require-jquery.js?cache = v2というファイルを出力しているので)。

私はcache = v2がindex.htmlに表示されるとは思っていませんが(なぜですか?)、ネットワークアクティビティログに期待するのは正しいです。

1

urlArgs上のドキュメント:

this issue from Github、ジェームズ・バーク「の開発時には、これを使用することが有用であることができ、 しかし、あなたのコードを展開する前にそれを削除してください」: 「ありません"

1

urlArgsパラメータは、作成者のstatedのように、開発にのみ適していると思われるため、実行時設定(すなわち、r.jsオプティマイザではなくRequireJSによって理解される)のものです。 (および「b適切なヘッダーを送信しない "広告サーバー"があります)。だから、(require.jsによってロードされた.jsファイルで、通常はmain.jsまたはconfig.jsの)あなたのrequire.config呼び出しでそれを設定する必要があるだろう、次のいずれか

require.config({ 
    // other config, like paths and shim 

    urlArgs: "cache=v2" 
}); 

それとも、この他あたりのSOをanswerの場合は、require.jsをロードする前に<script>ブロックに直接定義してください。

関連する問題