【问题标题】:Page refresh required on redirect to html file in IIS on I.E在 I.E 上重定向到 IIS 中的 html 文件时需要刷新页面
【发布时间】:2013-08-12 16:11:09
【问题描述】:

所以我有一个 Web 表单应用程序,其中我有一个页面,其唯一目的是重定向到一个 html 文件并显示它。现在这在 Visual Studio 中完美运行,但是当我从 IIS 运行它时,它在我第一次加载页面时运行良好,但是当我更改 html 文件然后再次打开它时,它仍然有旧内容,但如果我点击会更新刷新。我想我只是在Page_Load() 中手动刷新页面

    ClientScript.RegisterClientScriptBlock(this.GetType(), "Refresh", "<script>window.location.reload();</script>");

但这让我无处可去。我已经对其进行了几次测试,这只是 IE 中的一个问题,chrome 和 firefox 按预期工作。我只能忍受它吗?

谢谢。

【问题讨论】:

  • 要么将页面设置为不缓存(iis缓存设置),要么将随机数作为查询字符串附加到html页面以强制每次请求下载它

标签: c# internet-explorer iis webforms


【解决方案1】:

这一定是缓存问题,如 nakchak 所述。

我想你会在这个link上找到解决方案:

Page_Load 的简历中使用以下代码来防止缓存:

Response.Buffer=true;
Response.ExpiresAbsolute=DateTime.Now.AddDays(-1d);
Response.Expires =-1500;
Response.CacheControl = "no-cache";
//Bellow this is not needed, just for reference from original post 
if(Session["SessionId"] == null)
    {
     Response.Redirect ("WdetLogin.aspx");
    }
}

【讨论】:

  • 有道理,似乎是正确的答案,但我在重定向之前和之后尝试过,有和没有刷新,并关闭了 IIS 上的输出缓存(尽管查看他们的文档并没有实际上缓存html页面)。除非您知道我做错了什么,否则我可能会根据 nakchak 的建议每次更改文件名。虽然我不太喜欢这个主意。
  • Here 为我解决了这个问题。我最终只是将&lt;META HTTP-EQUIV="Pragma" CONTENT="no-cache"&gt;&lt;META HTTP-EQUIV="Expires" CONTENT="-1"&gt; 扔到了结尾&lt;HEAD&gt; 块中的html 文件中,这让它很开心。不过感谢您的帮助。
  • 很高兴您找到了解决方案
【解决方案2】:

Here 为我解决了这个问题。我最后只是扔了

<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</HEAD>

在 html 文件的底部,这让它很开心。这是在评论中,但我被限制回答,所以我现在将其重新发布为答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    相关资源
    最近更新 更多