web-dev-qa-db-ja.com

Chrome JSファイルのキャッシュを停止します

JSファイルに変更を加えますが、ブラウザでは実際には変更されません。ファイルをリロードするために、毎回ファイル名を変更する必要があります。追加できる何らかの.htaccessコマンドや、キャッシュを停止するものはありますか?

それは私のhtmlページをハードコアでさえキャッシュしています。変更を確認するためだけに、ブラウザ全体を再度開く必要があります。おそらくサーバーの問題でしょうか?

128
Howdy_McGee

右上隅の設定アイコン... |をクリックできます。その他のツール| 開発ツール | ネットワーク | キャッシュを無効にする(DevToolsが開いている間)

Windowsの場合、これは F12 または CTRL + SHIFT + I Macで CMD + SHIFT + I DevToolsを開きます。

Chromeの新しいパス2018年9月更新:

右上隅の設定アイコン... |をクリックします設定| 設定| 開発ツール | ネットワーク | キャッシュを無効にする(DevToolsが開いている間)

189
MartinHN

これを行うには、アドレスバーの横にある更新アイコンを右クリックし、空のキャッシュとハードリロードを選択します。

Chromeの開発ツールが開いていることを確認してください。 (F12キーを押す)ところで...このトリックは、Windows、Ubuntu、およびMac OSのChromeでのみ機能します

58
Nicole Rivers

リロードボタンをクリックしながらShiftキーを押したままにします。

19
StilesCrisis

script.js?a=[random Number]のようなものを、PHPが生成した乱数に追加します。

Expire = 0、プラグマ「no-cache」および「cache-control = NO-CACHE」を試しましたか? (私は彼らがスクリプトについて言うことを知らない)。

13
EGOrecords

いくつかのアイデア:

  1. Chromeでページを更新する場合は、Ctrl + F5キーを押して完全に更新します。
  2. 有効期限を0に設定しても、セッション中はキャッシュされます。ブラウザを閉じて再度開く必要があります。
  3. サーバーにファイルを保存するときに、タイムスタンプが更新されていることを確認してください。 Chromeは最初に完全なGETの代わりにHEADコマンドを発行して、完全なファイルを再度ダウンロードする必要があるかどうかを確認し、サーバーはタイムスタンプを使用して確認します。

サーバーでキャッシュを無効にしたい場合、次のようなことができます。

Header set Expires "Thu, 19 Nov 1981 08:52:00 GM"
Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
Header set Pragma "no-cache"

.htaccessで

11

クイックステップ:

1)[Chrome]メニュー-> [ツール]-> [開発ツール]に移動して、開発ツールダッシュボードを開きます。

2)右側の設定アイコンをクリックします(歯車です!)

3)[キャッシュを無効にする(DevToolsが開いている場合)]チェックボックスをオンにします

4)これで、ダッシュボードが起動している間に、リフレッシュを押すだけでJSがキャッシュされなくなります!

6
StackG

問題は、ChromeがCache-Control`ヘッダーにmust-revalidateを持ち、ファイルを再チェックして再取得が必要かどうかを確認する必要があることです。

常にSHIFT-F5を押してChromeを強制的に更新できますが、サーバーでこの問題を修正する場合は、次の応答ヘッダーを含めます。

Cache-Control: must-revalidate

これは、Chromeにサーバーを確認し、新しいファイルがあるかどうかを確認するよう指示します。新しいファイルがある場合、応答で受信します。そうでない場合、304応答を受け取り、キャッシュ内の応答が最新であることを保証します。

このヘッダーを設定しない場合、ファイルを無効にする他の設定がない場合、Chromeはneverでチェックしますサーバーは、新しいバージョンがあるかどうかを確認します。

ここに ブログ投稿 があり、この問題についてさらに説明しています。

3
AgilePro

Webアプリケーションを更新するときは、ハンドラーを使用して単一のJSファイルを返し、サーバーで大量のヒットを回避するか、小さなクエリ文字列を追加します。

<script type="text/javascript" src="/mine/myscript?20111205"></script>
2
Ryan Ternier
<Files *>
Header set Cache-Control: "no-cache, private, pre-check=0, post-check=0, max-age=0"
Header set Expires: 0
Header set Pragma: no-cache
</Files>
1
Alfabravo

これは「古い」質問です。しかし、キャッシングに関する頭痛の種は決してありません。たくさんの試行錯誤の後、Webホスティングプロバイダーの1つがCPanelを介してCachewallと呼ばれるこのアプリを持っていることがわかりました。 [開発モードを有効にする]をクリックしました...長い間苦しんでいた痛みをすぐに止めました:)これが他の誰かを助けることを願っています... R

1
Ramon Araujo
  1. 開発者ツールを開く

    • F12
    • または...-> More Tools-> Developer Tools
  2. Empty Cache and Hard Reloadをクリックします

    • 更新アイコンを右クリックする(URLアドレスバーのすぐ左)
    • または、更新アイコンを左クリックして1秒間押し続けます
0
Xin

代わりにシークレットウィンドウを開くことができます。通常のchromeウィンドウでキャッシュを無効にしても、最後のキャッシュ以降に変更したJavaScriptファイルがリロードされない場合、シークレットウィンドウへの切り替えは機能しました。

https://www.quora.com/Does-incognito-mode-on-Chrome-use-the-cache-that-was-previously-stored

0
jones-chris

Webサイト(実際のドメインを持つホスティング会社のサーバー)を参照するときに同じcssファイルを取得していましたが、Chromeで更新バージョンを取得できませんでした。 Firefoxで閲覧したときに、更新されたバージョンのファイルを取得できました。これらの答えはどれも私にとってはうまくいきませんでした。また、マシンにWebサイトファイルがあり、ローカルのApacheサーバーを使用してlocalhostでサイトを参照します。 Apacheサーバーをシャットダウンし、更新されたファイルを取得できました。どういうわけか、私のローカルApacheサーバーはchromeキャッシュをいじっていました。私がこれを修正するのは非常に難しかったので、これが誰かを助けることを願っています。

0
Alp Hancıoğlu