[解決済み】RequireJSが必須スクリプトをキャッシュしないようにする。
質問
RequireJSは、内部で必要なjavascriptファイルをキャッシュするようなことをしているようです。必要なファイルの1つに変更を加えると、変更を適用するためにファイル名を変更する必要があります。
ファイル名の末尾にクエリストリングパラメータとしてバージョン番号を付加する一般的なトリックは、requirejsでは機能しません。
<script src="jsfile.js?v2"></script>
私が探しているのは、RequireJS必須スクリプトの内部キャッシュを防ぐ方法で、スクリプトファイルが更新されるたびに名前を変更する必要はありません。
クロスプラットフォームでの解決策
現在、私は
urlArgs: "bust=" + (new Date()).getTime()
は開発中の自動キャッシュバスターに、そして
urlArgs: "bust=v2"
で、更新されたスクリプトをロールアウトした後、ハードコードされたバージョン番号をインクリメントします。
注意
Dustin Getz 氏は最近の回答で、このように Javascript ファイルが連続的に更新されると、デバッグ中に Chrome Developer Tools がブレークポイントをドロップすると述べています。回避策としては
debugger;
をコードに含めると、ほとんどのJavascriptデバッガでブレークポイントをトリガすることができます。
サーバー固有の解決策。
NodeやApacheなど、お使いのサーバー環境でより良く機能する可能性のある特定の解決策については、以下の回答のいくつかをご覧ください。
どのように解決するのですか?
RequireJSは、キャッシュバストのために、各スクリプトのURLに値を追加するように設定することができます。
RequireJSのドキュメントから( http://requirejs.org/docs/api.html#config ):
urlArgs : RequireJSが使用するURLに追加される追加のクエリ文字列引数 は、リソースの取得に使用します。ブラウザや サーバーが正しく設定されていない場合。
例:すべてのスクリプトに "v2" を追加する。
require.config({
urlArgs: "bust=v2"
});
開発目的では、タイムスタンプを追加することで、RequireJSがキャッシュをバイパスするように強制することができます。
require.config({
urlArgs: "bust=" + (new Date()).getTime()
});
関連
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】getElementByIdはnullを返す?[クローズド]
-
[解決済み】WebSocket接続に失敗しました。WebSocket のハンドシェイク中にエラーが発生しました。予期しない応答コードです。400
-
[解決済み】Jestが予期しないトークンに遭遇した
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み] jQueryでJavaScriptオブジェクトから選択する際に、オプションを追加する最も良い方法は何ですか?
-
[解決済み] CommonJSとAMDとRequireJSの関係?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Uncaught TypeError: nullのプロパティ'value'を読み取ることができない
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】WebSocket接続に失敗しました。WebSocket のハンドシェイク中にエラーが発生しました。予期しない応答コードです。400
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。
-
[解決済み】ETIMEDOUTエラーの対処方法は?
-
[解決済み】Uncaught TypeError: 未定義のプロパティ 'msie' を読み取れない - jQuery tools
-
[解決済み】Vueが定義されていない
-
[解決済み] ウェブサイト制作のためのChromeキャッシュの無効化