web-dev-qa-db-ja.com

ウェブサイトにアクセスするたびに、Google Chromeで新しいJavaScriptファイルをチェックするように強制する

したがって、Internet Explorerのインターネットオプションに移動すると、次のようになります。 enter image description here

IE更新のチェック: の設定を調整できますenter image description here

Google Chromeでも同様のことができますか? JavaScriptファイルを変更してVisual Studioからデバッグするとき、Chromeは変更されたバージョンではなく常にキャッシュされたバージョンを使用します。現在のバージョンを使用できるようにするには、一時的にインターネットの一時ファイル/キャッシュを手動で消去します。これは本当に面倒です。

オプション1:キャッシュを一時的に無効にします

  1. 開発者ツールを開く(プレス F12 またはメニュー、その他のツール、開発者ツール)
  2. 開発者ツールの設定を開きます(プレス F1 またはDevToolsメニュー、設定)
  3. [設定]ペインの[ネットワーク]ヘッダーの下にある[キャッシュを無効にする(DevToolsが開いている間)]をオンにします

オプション2:セッションのキャッシュを無効にする

スタートChromeコマンドラインスイッチ--disk-cache-size=1 --media-cache-size=1は、キャッシュを1バイトに制限し、キャッシュを効果的に無効にします。

オプション3:手動強制更新

キャッシュされたコンテンツを無視して、現在のページをリロードします。 Shift+F5 または Ctrl+Shift+r

Chromeキーボードショートカット-Chromeヘルプ (「Webページショートカット」の下)

オプション4:追加の再読み込みオプションソース

開発者ツールを開いた状態で[再読み込み]ボタンを右クリックすると、次のような再読み込みメニューが表示されます。

  • 通常の再読み込み(Ctrl + R)
  • ハードリロード(Ctrl + Shift + R)
  • 空のキャッシュとハードリロード
55
Steven

chrome refreshとは100%の関係ではないかもしれませんが、さらなる開発のためです。@ Domが言ったように、リソースの後に?v =#を追加できます。プロセスを自動化する1つの方法は、上記のファイルのコンテンツをハッシュし、バージョンとして使用します。

これが役立つ場合、C#(実装用のRazor)でこれを行う方法に関するスニペットコードがあります。

ヘルパー:

public static string HashUrl(string relativeUrl)
    {
        var server = HttpContext.Current.Server;
        if (File.Exists(server.MapPath(relativeUrl)))
        {
            byte[] hashData;
            using (var md5 = MD5.Create())
            using (var stream = File.OpenRead(server.MapPath(relativeUrl)))
                hashData = md5.ComputeHash(stream);

            return relativeUrl.Replace("~", "") + "?v=" + BitConverter.ToString(hashData).Replace("-", "");
        }
        return relativeUrl + "?v=notFound";
    }

実装:

<link rel="stylesheet" [email protected]("~/Controllers/Home/Views/Index.css") />

お役に立てれば

編集---いくつかのビルドランタイムを要求し、1000の小さなリソースの場合、約11ミリ秒かかります。

https://en.code-bude.net/2013/08/07/md5-hashes-in-c-benchmark-and-speed-%E2%80%8B%E2%80%8Boptimization/

enter image description herehttps://en.code-bude.net/wp-content/uploads/2013/08/md5_performance_benchmark_2.png

8
fred beauchamp

アクセスできないエンドユーザーのコンピューターで強制的に更新したい場合など、これらが不可能な場合は、スクリプトにバージョン番号を 追加できます。ブラウザーを別のファイル として識別させるクエリパラメーターとしての名前。すなわち。 example.js?v=1。強制するためには、リロードのたびに番号を変更する必要があることを覚えておいてください。

ローカル開発でもこれを行うことができますが、開発ツールの方がはるかに効率的です。

5
Dom

@Stevenの回答に加えて、Developer Tools Consoleを開いたら、右クリック更新ボタンでドロップダウンを使用できますメニュー。

このメニューでは、オプション"Empty Cache and Hard reload"を使用できます。

あなたが探しているものです。

3
Leze

サイトを開発している場合は、Chromeにはmust-revalidate設定Cache-Controlサーバー上で変更されたファイルを適切に再フェッチするため。

他の答えは、SHIFT-F5を押して、独自のバージョンのChromeですべてのファイルを再フェッチするように強制する方法です。ただし、サイトのすべてのユーザーに毎回これを行うように指示することは理にかなっています。サイトは変わりますか?Cache-Control 含める must-revalidate then Chromeは、ファイルが変更されているかどうかを確認し、必要に応じて適切にダウンロードします。

詳細については、このブログ投稿をご覧ください: https://agiletribe.wordpress.com/2018/01/29/caching-for-chrome/

1
AgilePro