【问题标题】:How can I stop images from being cached -OR- how can I check that a file exists on the server?如何阻止图像被缓存 - 或者 - 如何检查服务器上是否存在文件?
【发布时间】:2010-11-08 17:44:29
【问题描述】:

我的网站根据为它们创建的名称加载图像。它加载图像,假设它们存在,而有时它们不存在。每次加载这样的图像时:

<img src="/myimages/my-image.jpg" alt=""/>

如果它不在服务器上,它似乎缓存了那里没有图像,所以下次我在将 my-image.jpg 保存到服务器后加载相同的图像时,它就会显示出来作为空白...我怎样才能使它不缓存它找不到的图像?

编辑:我仍然想缓存它找到的图像

另外,您如何检查文件是否存在? (最好来自javascript)。这样我可以在加载之前检查图像是否存在,我会完全颠覆这个问题。

谢谢,
马特

【问题讨论】:

  • 真正的问题是您的页面要求的图像不存在吗?你能不修改你的 HTML 生成不请求这些页面吗?
  • 是的,不,它需要请求它们,或者至少弄清楚它们是否存在。我必须假设图像在那里,因为如果添加了任何图像,则需要加载它们。

标签: asp.net javascript caching image


【解决方案1】:

如果可以,请在将 HTML 文件发送到客户端之前从服务器进行检查。

如果这不是一个选项,您可以使用 ajax:

  1. 调用页面,传入文件名的请求参数
  2. 在页面中,检查此文件名并根据该文件返回 true 或 false。
  3. 返回 javascript,如果它是 true(文件存在),则允许加载该图像。否则,请加载默认(占位符)图像,或者根本不显示任何图像。

【讨论】:

    【解决方案2】:

    也许在你的代码中插入一个元标记;

    http://www.htmlgoodies.com/beyond/reference/article.php/3472881

    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    

    <META HTTP-EQUIV="Expires" CONTENT="-1">
    

    在 html.. 的 head 部分内?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-27
      • 2012-10-01
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      相关资源
      最近更新 更多