5

我创建了一个基于ASP.NET 4的网站。 起初,我运行了由Visual Studio ASP.NET 4 Internet应用程序模板生成的默认站点。我刚刚点击调试按钮,IE启动,它连接到http://localhost:1341/并加载我的网站的默认欢迎页面。一切似乎都很好,所以我开始重新设计Index.cshtml。Visual Studio ASP.NET开发服务器不断返回旧页面

重新设计后,我再次启动了该网站。在浏览时,我注意到如果我点击浏览器的后退按钮,我会得到第一页的缓存旧版本,并且必须在浏览器中点击刷新来获取新版本。

所以我添加

<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”。

获取新重新设计的页面的唯一方法是使用Cache-> Always from server刷新。我可以为开发目的做到这一点,但这只是让我头脑发生混乱 - 当我回击时,从哪里得到那个非常古老的页面?

调试时,在Visual Studio中,解决方案资源管理器中会出现一个新的树项目。这个新项目被称为脚本文档。在它下面,有一个包含localhost项目的Windows Internet Explorer项目...当我打开它时 - 是的,这是当我点击返回按钮时即将访问IE的旧页面! Visual Studio(或ASP.NET开发人员服务器)在哪里存储“localhost”页面?

我该如何摆脱停滞不前的页面并停止IE(或者也可能是ASP.Dev服务器)缓存我的本地主页/首页?我该如何删除旧页面?

我希望,新的页面不会被缓存以同样的方式,因为我加入到它...

+0

这不是一个代码问题;这是一个IE问题,你已经知道基于你的帖子的工作。 –

+2

但是它在哪里得到这个旧页面,以及为什么它在调试时甚至在Visual Studio Solution Explorer中出现?我清理了我认识的每个地方(IE缓存,Temp文件夹),但仍然将第一页缓存到其他地方... – JustAMartin

+0

我同意。我不认为这是一个简单的IE问题。它可能是Cassini的问题(也清除缓存但问题仍然存在),Visual Studio或IE在调试模式下。它只发生在“开发模式”,只有当你使用后退按钮或等效。这是一种能够驱动任何开发人员坚果(更多坚果)的问题。我也想知道这个旧版本的存储位置,因为它可能有助于修复它。 – Swanny

回答

0

添加

<meta http-equiv="CACHE-CONTROL" content="NO-CACHE"/> 
<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT"> 
相关问题