所以我刚刚通过FileManager(网络解决方案)更新了一个网站。而且我遇到了一个问题,Chrome基本上保存了以前的文件,因此网站的加载速度会更快。问题是,新网站不能很好地处理旧文件。因此,我必须进入隐私并清除我的网站数据才能正确刷新以显示我的更新网站。如何让Chrome浏览器清除网站上的缓存和Cookie?
无论如何要解决这个问题与前端的代码?因为对于不经常清除浏览历史记录的人来说,网站对他们来说会显得不合时宜。谢谢您的帮助!
所以我刚刚通过FileManager(网络解决方案)更新了一个网站。而且我遇到了一个问题,Chrome基本上保存了以前的文件,因此网站的加载速度会更快。问题是,新网站不能很好地处理旧文件。因此,我必须进入隐私并清除我的网站数据才能正确刷新以显示我的更新网站。如何让Chrome浏览器清除网站上的缓存和Cookie?
无论如何要解决这个问题与前端的代码?因为对于不经常清除浏览历史记录的人来说,网站对他们来说会显得不合时宜。谢谢您的帮助!
由于Raccoon suggests,使用标题告诉浏览器不缓存可能会解决一些问题。
黑客将设置一个时间戳作为您正在使用的更新(或全部)脚本的查询参数<script src="js/myfile.js?updated=1492974572411"></script>
。这也适用于css文件。
一个更清洁,更易于管理的解决方案是让浏览器做它的事情,而改变你更新的文件的名称。我建议使用生成随机哈希。使用与上述相同的例子,这将意味着使用类似以下内容:<script src="js/f8dc525b.myfile.js"></script>
的WebPack例如can generate this hash for you,但你可以很容易地生成该值自己或者通过using a library,或者做类似Math.random().toString(16).slice(2)
。
对于缓存如果你的服务器有PHP中使用
<?php
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
或者,如果你想用js来清除它使用window.location.reload(true)
,你可以尝试使用JavaScript window.location.replace()
功能:
<meta http-equiv="refresh" content="0; http://www.redirecturl.com/" />
<meta http-equiv="pragma" content="no-cache">
<script type="text/javascript">
window.location.replace('URL');
</script>`
嘿,你有没有尝试过使用这种方法? http://stackoverflow.com/a/179514/7813290 – Jamin