5

Tôi đã tạo một trang web dựa trên ASP.NET 4. Lúc đầu, tôi chạy trang web mặc định vì nó được tạo ra bởi Visual Studio ASP.NET 4 mẫu ứng dụng Internet. Tôi chỉ cần nhấn nút Debug, và IE đã được đưa ra, nó kết nối với http://localhost:1341/ và tải trang chào đón mặc định của trang web của tôi. Mọi thứ đều ổn, vì vậy tôi bắt đầu thiết kế lại Index.cshtml.Máy chủ phát triển Visual Studio ASP.NET tiếp tục trả lại các trang cũ

Sau khi thiết kế lại, tôi đã khởi chạy lại trang web. Và trong khi điều hướng, tôi nhận thấy rằng nếu tôi nhấp vào nút Quay lại của trình duyệt, tôi nhận được phiên bản cũ của trang đầu tiên được lưu trong bộ nhớ cache và tôi phải nhấn Làm mới trong trình duyệt để tải xuống trình duyệt mới.

Vì vậy, tôi đã thêm

<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(); 
    } 

đến trang web của tôi.

Sau đó, tôi xóa bộ nhớ cache của IE bằng cách sử dụng Tùy chọn IE. Tôi cũng làm sạch thư mục Local \ Temp.

Nhưng tôi vẫn nhận được Kết quả 304 trong tab Công cụ nhà phát triển IE khi nhấn nút Quay lại trong trình duyệt.

Cách duy nhất để có được trang được thiết kế lại mới là sử dụng Cache-> Luôn làm mới từ máy chủ. Tôi có thể làm điều đó cho các mục đích phát triển, nhưng nó chỉ làm rối tung tâm trí của tôi - nơi mà nó nhận được rằng trang rất cũ từ luôn luôn khi tôi nhấn Back?

Khi gỡ lỗi, trong Visual Studio sẽ xuất hiện một mục cây mới trong Solution Explorer. Mục mới này được gọi là tài liệu tập lệnh. Theo đó, có một mục Windows Internet Explorer có chứa mục localhost ... và khi tôi mở nó - yeah, đó là trang cũ đang đến với IE khi tôi nhấn nút Back! Visual Studio (hoặc máy chủ ASP.NET Dev) lưu trữ trang "localhost" ở đâu?

Làm cách nào để thoát khỏi trang bị kẹt đó và ngừng IE (hoặc có thể cả máy chủ ASP.Dev) khỏi bộ nhớ cache của máy chủ cục bộ/trang chủ của tôi? Làm thế nào để xóa trang cũ đó cho tốt?

Tôi hy vọng, các trang mới sẽ không được lưu trữ theo cùng một cách, bởi vì tôi thêm vào nó ...

+0

Đây không phải là vấn đề về mã; đó là vấn đề về IE và bạn đã biết công việc xung quanh dựa trên bài đăng của mình. –

+2

Nhưng nó nhận được trang cũ từ đâu và tại sao nó lại xuất hiện ngay cả trong Visual Studio Solution explorer trong khi gỡ lỗi? Tôi đã dọn dẹp mọi nơi tôi biết (bộ nhớ cache của IE, thư mục Temp), nhưng trang đầu tiên đó vẫn được lưu trữ ở một nơi khác ... – JustAMartin

+0

Tôi đồng ý. Và tôi không nghĩ rằng đây là một vấn đề IE đơn giản. Đó là hoặc là một vấn đề với Cassini (cũng xóa bộ nhớ cache nhưng vấn đề vẫn còn xảy ra), Visual Studio hoặc IE trong chế độ gỡ lỗi. Nó chỉ xảy ra trong "chế độ phát triển" và chỉ khi bạn sử dụng nút quay lại hoặc tương đương. Nó là loại gotcha mà sẽ lái bất kỳ hạt phát triển (cũng nhiều hạt). Tôi cũng muốn biết nơi mà bản sao cũ này được lưu trữ bởi vì nó có thể sẽ giúp sửa chữa nó. – Swanny

Trả lời

0

thêm

<meta http-equiv="CACHE-CONTROL" content="NO-CACHE"/> 
<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT"> 
Các vấn đề liên quan