2013-04-19 12 views
5

AMDモジュールのサーバーに要求が送信される前にdojo AMDローダーが使用する要求URLを変更できますか?私は、バージョン番号を持つリクエストパラメータを追加したいと思います。dojoのAMDローダー経由でDojoモジュール要求にリクエスト・パラメーターを追加することは可能ですか?

私たちが解決しようとしている問題は、アプリケーションのバージョンが更新されていない限り、ブラウザによってJavaScriptファイルがキャッシュされるようにすることです。要求されたURLにバージョン番号を追加できるのであれば、それを実行できるはずです。

答えて

10

configプロパティは個々のモジュールで機能しているようですが、cacheBustはすべてのモジュールで使用できます。 Example jsfiddle

<script> 
var dojoConfig = { 
    paths: { 
     // version a single file by using path with version number 
     "aa": "mylib-aa.js?v=1.0", 
     // standard path, no explicit versioning 
     "bb": "mylib-bb" 
    }, 
    // use v=1.0 for ALL loaded modules 
    cacheBust: "v=1.0", 
    waitSeconds: 10 
}; 
</script> 
<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/dojo.js"></script> 
<script> 
require(["aa", "bb"], function() {}); 
</script> 

与える:

"NetworkError: 404 Not Found - https://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/mylib-aa.js?v=1.0.js&v=1.0" 
"NetworkError: 404 Not Found - https://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/mylib-bb.js?v=1.0" 

pathsアプローチのしゃっくりは、末尾の「.jsファイル」ですが、バージョン管理の目的は、私はそれは問題ではないと思うのためのURLは、まだ一意であるとしてあなたがそれを望む方法で。

+0

パッケージに関係なく、すべてのリクエストに同じhttpパラメータを追加するとどうなりますか?それを設定する方法はありますか? –

+1

はい、これは 'cacheBust'設定パラメータ(https://github.com/dojo/dojo/blob/1.8.3/dojo.js#L527)で実現できます。 –

+0

ポールありがとう、あなたの答えは助けますが、ダビデの質問に対する答えは考えられます。すべてのパッケージでそれを行う方法があれば、それは良いでしょう。 – Shilpam

関連する問題