5

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 サーバーも) がローカルホスト/フロント ページをキャッシュしないようにするにはどうすればよいですか? その古いページを完全に削除するにはどうすればよいですか?

追加したので、新しいページが同じ方法でキャッシュされないことを願っています...

4

1 に答える 1

0

追加

<meta http-equiv="CACHE-CONTROL" content="NO-CACHE"/>
<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT">
于 2012-09-20T13:19:25.420 に答える