Html 在不更改图像名称/参数的情况下停止图像缓存

Html 在不更改图像名称/参数的情况下停止图像缓存,html,image,caching,query-parameters,Html,Image,Caching,Query Parameters,注意:此问题与类似问题不同,类似问题的答案要求在图像名称的末尾添加javascript/php生成的随机数查询。正如我在原始帖子中解释的,我不能在代码中使用javascript。用户正在对HTML进行一次性复制,并将其粘贴到无法运行javascript的位置 我运行一个web服务,为用户生成图像文件,显示他们在某些地理缓存目标上的进展(地理缓存只是一种户外爱好)。图像位于我的服务器上。然后,该服务为用户提供参考图像的HTML代码,用户可以将该HTML复制/粘贴到其他网站,例如他们的个人博客或主

注意:此问题与类似问题不同,类似问题的答案要求在图像名称的末尾添加javascript/php生成的随机数查询。正如我在原始帖子中解释的,我不能在代码中使用javascript。用户正在对HTML进行一次性复制,并将其粘贴到无法运行javascript的位置


我运行一个web服务,为用户生成图像文件,显示他们在某些地理缓存目标上的进展(地理缓存只是一种户外爱好)。图像位于我的服务器上。然后,该服务为用户提供参考图像的HTML代码,用户可以将该HTML复制/粘贴到其他网站,例如他们的个人博客或主geocaching网站上的个人资料

他们可以定期访问我的网站,生成新的更新图像。这些映像在服务器上仍然具有相同的名称。这样,他们以前复制/粘贴的HTML仍然有效…它引用相同的图像,但这些图像已经更新

然而。。。缓存是一个问题。通常,我会生成新的图像,但是用户仍然会在他们的个人博客或任何地方看到旧图像,因为旧图像被缓存了

  • 我可以为用户提供在图像src上添加随机查询参数的HTML代码,但这没有帮助,因为他们只复制/粘贴了一次该HTML。随机查询参数只生成一次,在第一次加载后,图像将被缓存,并且不会有新的随机查询参数
  • 我不能给用户提供包含javascript的HTML代码,以便在每次读取HTML时生成随机查询参数,因为他们正在将此HTML代码复制到通常无法运行脚本的字段中
  • 显然,我不能尝试禁用他们端的缓存,因为他们正在将此HTML粘贴到其他站点

我可以做些什么来禁用普通HTML中这些图像的缓存吗?我可以使用任何img属性吗?解决这个棘手问题有什么办法吗?

您可以设置HTTP头以防止缓存

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
我相信这也可以通过设置元内容来实现:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>

资料来源:

创建一个

<script> 


tage在html块内,并使用jvascript Math.random()方法创建一个随机数,以提供“图像src上的随机查询参数”的参数。这使得对图像的所有请求都是唯一的,并防止缓存

谢谢@Mark,但是我没有权限访问包含HTML代码的页面,因此我无法设置页面的标题或元标记。用户将要将包含img标记的我的html代码粘贴到博客帖子或其他字段中。谢谢@Meysam,但从原始帖子:“我不能在每次读取HTML时给用户提供包含javascript的HTML代码来生成随机查询参数,因为他们正在将此HTML代码复制到通常无法运行脚本的字段中。”为了澄清,他们正在进行HTML的一次性复制……而HTML不能包含javascript。