私はredirects
を使用しているWebアプリケーションで作業しています(かわいいURL用)。
リダイレクトが機能するようにロジックをデバッグしようとしています。ただし、Google Chromeはリダイレクトを記憶し続け、コードを変更した後も同じようにリダイレクトします。
これはトラブルシューティングを非常に難しくしています。
たとえば、/this
を/that
にリダイレクトした場合、自分のコードをもう/this
をリダイレクトしないように変更します。 Google Chromeはまだ/that
にリダイレクトしています。リダイレクトがキャッシュされているか何かのように。これをオフにする方法はありますか?
Google Chromeは301個のリダイレクトを キャッシュします 。これを回避し、タブを開いたままにするには、ブラウザのキャッシュを消去するだけです。
Chromeメニュー >設定>詳細設定を表示...>プライバシー>クリック閲覧データを消去...
他に何を選択しても、[キャッシュされた画像とファイル]がオンになっていることを確認してください。
次に閲覧履歴の消去をクリックすると、再度テストすることができます。
リダイレクトしたばかりの場合は、過去1時間のデータを削除するだけで済みます。
あるいは、シークレットモードでテストおよび開発します。ブラウザが閉じられた後キャッシュはそこでフラッシュされます。
これは、閲覧中のデータをすべて消去せずにリダイレクト用のChromeのスティッキメモリを消去する確実な方法です(現在のトップの回答で使用されている方法)。
Developer Toolsパネルを開きます(optioncommandi Macの場合 ctrlshifti Windowsの場合)
リロードアイコンをクリックしたままにします
メニューが開きます
このメニューから3番目のオプションを選択します( "Empty Cache and Hard Reload")。
これが これら3つのオプションの違い の優れた説明です。
シモンズ:リダイレクトは、Chromeが続いているたびにこれらの手順を実行することを避けるために:DevToolsで無効キャッシュをチェックし、DevToolsが開いている間Chromeはリダイレクトキャッシュをバイパスします あたりこの答え )
これは完璧な解決策ではありませんが、偽のクエリ文字列を渡す、または既存のクエリ文字列に偽のパラメータを追加することで、Chromeがキャッシュリダイレクトを使用するのを防ぐことができました。たとえば、qクエリ文字列を持たないURLの最後に単純な?
を追加すると、Max OS X上のChrome 30で動作しました。
これについて "wontfix" Chromiumのバグがあります 、
これは予想される動作です。
ご了承ください:
- あなたは301にキャッシュコントロールヘッダを追加することができます、そして我々はそれらに従います(有効期限など)
- 問題のリソースがサブリソースの場合、ページを再ロードするとリダイレクトがサーバーで再検証されます。
- キャッシュ全体を失う必要はありません。リダイレクトに従って最後の1時間を削除するだけです。
DevToolsで[キャッシュを無効にする(DevToolsが開いている間)]オプションを有効にしている場合は、セッションを常に捨てることなく、単にDevToolsを開いてもリダイレクトキャッシュをバイパスするのに十分です。
ChromeはHTTPリダイレクトをキャッシュし、リダイレクトが変更された場合はサイトへのチェックを中止します。リンクにアクセスする前にリダイレクトが行われるため、これを修正する最も簡単な方法(サイトにアクセスして強制的に更新する)を使用することはできません。これは で問題は解決されません 。
これを回避するには、ここで説明されているように ブラウズデータを消去するか 、または以下の手順に従って履歴を失わないようにします。
Chromeデベロッパーツールを開く
設定をクリック
チェックキャッシュを無効にする(DevToolsが開いている間)
あなたが欲しいサイトを訪れればキャッシュの問題は解決されるでしょう。
Chrome:// net-internalsに行き、一番右のドロップダウンを開いて "Clear Cache"を選択してください。バージョン48の時点で、これがキャッシュされた301をクリアするのに役立つ唯一のものでした(恒久的なリダイレクト)。
更新:残念ながら、バージョン71(2018年12月)現在、Googleはネット内部機能を削除しています。
2017年12月のChrome 63以降、.dev(および.foo)で終わるすべてのドメインは、プリロードされたHTTP Strict Transport Security(HSTS)ヘッダーを介してHTTPSを使用するように強制されています。
詳細はこちら: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/
Chromeで1ページのリダイレクトキャッシュをクリアするには、ソースを表示して(CTRL + SHIFT + R)
をハードリフレッシュします。
ソースブラウザは自動的に301リダイレクトをたどらないので、これは働きます。
説明したように ここ はHSTSが原因である可能性があります
これを回避するために、私は次のようにしました。
Chromeのアドレスバーに「chrome:// net-internals /#hsts」と入力します。ページの一番下にQUERYドメインのテキストボックスが表示されます。上のテキストボックスを使用しているドメインあなたのサイトは今、普通のHTTPを使って動くはずです
ChromeとFirefoxのどちらでも、 "view-source:redirect.yoursite.com"と入力してenterを押すことでリダイレクトを更新できます。そのページを更新します。これで、ChromeまたはFirefoxにリダイレクトの更新を強制する必要があります。
リダイレクトが期待どおりに機能していることを確認するだけの場合は、wgetなどのコマンドラインツールを使用する方がおそらく簡単です。応答ヘッダーを調べることができ、リダイレクトはキャッシュされません。
キャッシュ全体を失いたくなくてもリダイレクトがキャッシュに残っている場合は、URLのview-source:バージョンにアクセスしてみてください。それは私にとって同じURLのリダイレクトキャッシュを更新しました。
最も簡単な方法は、ハードリフレッシュです。 Ctrl
+ R
を数秒間押し続けます。これにより、リダイレクトと静的リソースがクリアされます。
chrome://settings/search#clear%20browsing%20data
に行く
[閲覧履歴を消去]をクリックします。
「キャッシュされた画像とファイル」をチェックしてください(そして必要なら残りのチェックを外してください)
[閲覧履歴を消去]をクリックします。
私はこのページですべての答えを試しましたが、私がwindowsコマンドラインウィンドウでflushdnsを実行するまで、どれもうまくいきませんでした。
C:\Users\DBashyal>ipconfig /flushdns
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.
ちなみに、私はすでに この答え で述べたようにDisable cache
をチェックしていました。