【问题标题】:How to force Images to be loaded all the time, ASP.NET如何强制始终加载图像,ASP.NET
【发布时间】:2010-11-02 06:57:18
【问题描述】:

我正在提供一个包含图像的 .aspx。我还没有弄清楚如何强制 ie7(6) 一直获取图像(例如重定向)。

到目前为止,我已经在我的 .aspx 页面上添加了以下标签:

<META Http-Equiv="Cache-Control" Content="no-cache">
<META Http-Equiv="Pragma" Content="no-cache">
<META Http-Equiv="Expires" Content="0"> 

而且,如果我单击 URL 栏并按 Enter 键或重定向到同一页面,IE 将不会重新获取图像。

我错过了什么?

其他说明:

ISS 5
IE7 7.0.5730.13
Works on Firefox and everywhere else but IE

重定向代码:

Response.Redirect("url...", true);

【问题讨论】:

    标签: asp.net internet-explorer internet-explorer-6 internet-explorer-7


    【解决方案1】:

    IIS 可能会覆盖这些设置。进入 IIS 管理器并找到图像所在的文件夹。右键单击并选择属性。单击 HTTP 标头选项卡。选中“启用内容过期”和“立即过期”选项。

    【讨论】:

    • 根据本知识库support.microsoft.com/kb/234067,IE 4/5(假设在以后的版本中没有改变),“Cache-Control META HTTP-EQUIV 标签被忽略,在 Internet Explorer 中无效版本 4 或 5。要使用 Cache-Control,必须使用 HTTP 标头指定此标头,如上面的 Cache-Control 部分所述。"
    【解决方案2】:

    您可以在图片 URL 的末尾放置一个唯一标签,以确保缓存不会被命中。例如

    <img src="/path/to/image.jpg?<%=DateTime.Now.Ticks.ToString()%>" />
    

    当然,如果您使用的是 WebForms,您会希望做一些不同的事情,但仍要遵循这些原则。

    【讨论】:

    • 谢谢,这也帮助了我!
    【解决方案3】:

    我不知道具体原因,但我们在 PageLoad 事件中将这些行添加到 aspx.cs 文件中解决了类似的问题:

    //Turn off cache
    Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);
    Response.Cache.SetNoStore(); 
    

    这对解决您的问题也很有用

    http://royriojas.blogspot.com/2009/04/dealing-with-back-button-and-secured.html

    【讨论】:

    • 谢谢,但是在你推荐之后 IE 仍然会缓存东西.. arrgh!
    【解决方案4】:

    请参阅http://www.enhanceie.com/redir/?id=httpperf,了解 HTTP 缓存的工作原理以及如何缓存或不缓存文件。

    【讨论】:

      猜你喜欢
      • 2012-09-19
      • 2014-11-12
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-04
      • 1970-01-01
      相关资源
      最近更新 更多