如何从客户端清除缓存的网站'个人电脑

How do I clear a cached website from clients' PCs?

本文关键字:网站 个人电脑 缓存 客户端 清除      更新时间:2023-09-26

我的问题如下:我为去年的一个活动建立了一个网站(2014版)。现在,我为同样的活动创建了一个网站,但在今年(2015年)。然而,每当我访问网站,它打开2014年的版本,即使我已经把另一个版本…按F5刷新页面,显示2015年的站点。

所以我认为问题是这个网页是一个缓存版本,这就是发生这种情况的原因。我的问题是:有办法解决这个问题吗?(考虑一个JavaScript脚本来清除这个网站的每个访问者的缓存…)

注:: 2015年网站使用HTML5, CSS3, JavaScript。HTML4和CSS2-3的2014版本

为css和javascript执行此操作

<link rel="stylesheet" type="text/css" href="yourlink/filename.css?v=2"/>   
<script src="yourlink/filename.js?v=2"></script>

这里有一个很好的缓存控制教程:http://www.mobify.com/blog/beginners-guide-to-http-cache-headers/

然而,如果你没有在你的2014版应用这些技巧,我猜没有好的方法来过期已经缓存的2014版从用户的浏览器。也许你现在能做的最好的事情就是把2015版放到一个不同的URL。

你不能通过客户端或服务器端代码清除'传统'浏览器缓存,至少不能以跨浏览器兼容的方式。你可以告诉浏览器不要缓存你的页面通过发送适当的标题或使用这些meta标签:

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>

选择你可以版本你所有的资源,例如img-2015.png与img-2014.png

如果浏览器过去没有计算过期日期,它可能会尝试使用HEAD方法发送http请求。此方法应该返回与GET相同的元数据。因此,您可以通过在HEAD请求上设置正确的http缓存头来触发刷新GET请求。这将强制浏览器将其缓存的版本识别为过期,并使用GET检索数据。

一种选择是,您可以给文件在服务器上的不同位置,并进行服务器端重定向。