[解決済み] クライアントにJavaScriptファイルを強制的に更新させるには?
質問
現在、プライベート・ベータ版で作業しているため、かなり迅速な変更を行っている最中ですが、明らかに利用が増え始めているため、このプロセスを減速させる予定です。 とはいえ、1つの問題として、新しい JavaScript ファイルを含むアップデートをプッシュした後、クライアントのブラウザはまだキャッシュされたバージョンのファイルを使用しており、アップデートが表示されないということがあります。 もちろん、サポート電話では、クライアントブラウザに ctrl F5 をリフレッシュして、サーバーから最新のファイルを取得するようにしますが、それ以前に処理することが望ましいと思います。
現在考えているのは、単純にJavaScriptのファイル名にバージョン番号を付けて、変更があったときにスクリプトのバージョンをインクリメントして、すべての参照を更新する方法です。 これは確かに有効ですが、リリースのたびにリファレンスを更新するのは面倒になるかもしれません。
この問題に取り組むのは私たちが初めてではないと思うので、コミュニティに投げかけてみようと思いました。 コードを更新したときに、どのようにしてクライアントがキャッシュを更新するようにしているのでしょうか? 上記の方法を使用している場合、変更を簡略化するプロセスを使用していますか?
解決方法は?
私の知る限り、一般的な解決策は
?<version>
をスクリプトのsrcリンクに追加してください。
例えば
<script type="text/javascript" src="myfile.js?1500"></script>
この時点で、すべてのscriptタグでこれらの"バージョン番号"を増加させるために、find-replaceより良い方法はないのでしょうか?
バージョン管理システムでやってくれるかもしれませんよ?ほとんどのバージョン管理システムは、例えばチェックイン時に自動的にリビジョン番号を注入する方法を備えています。
このような感じでしょうか。
<script type="text/javascript" src="myfile.js?$$REVISION$$"></script>
もちろん、次のようなより良い解決策は常にあります。 これ .
関連
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] Flash CS4が手放せなくなる
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
WeChatアプレット用ユニアプリによるグローバルシェアリング
-
vueが定義するプライベートフィルタと基本的な使い方
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み】React - TypeError: 未定義のプロパティ 'props' を読み取ることができない。
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR