ASP.NET 4 ベースの Web サイトを作成しました。最初に、Visual Studio ASP.NET 4 インターネット アプリケーション テンプレートによって生成された既定のサイトを実行しました。[デバッグ] ボタンをクリックすると、IE が起動しhttp://localhost:1341/
、Web サイトのデフォルトのウェルカム ページに接続して読み込まれました。すべて問題ないように思えたので、Index.cshtml の再設計を開始しました。
デザインを一新した後、ウェブサイトを再び立ち上げました。ナビゲートしているときに、ブラウザの [戻る] ボタンをクリックすると、最初のページのキャッシュされた古いバージョンが表示され、ブラウザで [更新] をクリックして新しいページを取得する必要があることに気付きました。
だから私は追加しました
<meta http-equiv="PRAGMA" content="NO-CACHE">
と
protected void Application_BeginRequest(object sender, EventArgs e)
{
// prevent caching
HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Current.Response.Cache.SetValidUntilExpires(false);
HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.Cache.SetNoStore();
}
私のウェブサイトへ。
次に、IE オプションを使用して IE キャッシュをクリアしました。Local\Temp フォルダーもクリーニングしました。
しかし、ブラウザーで [戻る] ボタンを押すと、IE 開発者ツールの [ネットワーク] タブで結果 304 が表示されます。
再設計された新しいページを取得する唯一の方法は、[キャッシュ] -> [常にサーバーから更新] を使用することです。私は開発目的でそれを行うことができましたが、それは私の心を台無しにしているだけです-戻るを押すと、いつもどこからその非常に古いページを取得しますか?
デバッグ中、Visual Studio のソリューション エクスプローラーに新しいツリー項目が表示されます。この新しいアイテムは、スクリプト ドキュメントと呼ばれます。その下には、localhost アイテムを含む Windows Internet Explorer アイテムがあります...そしてそれを開くと、ええ、[戻る] ボタンを押したときに IE に表示される古いページです! Visual Studio (または ASP.NET Dev サーバー) はその "localhost" ページをどこに保存しますか?
立ち往生したページを取り除き、IE (または ASP.Dev サーバーも) がローカルホスト/フロント ページをキャッシュしないようにするにはどうすればよいですか? その古いページを完全に削除するにはどうすればよいですか?
追加したので、新しいページが同じ方法でキャッシュされないことを願っています...