【问题标题】:How to tell Chrome to clear cache and cookies from a website?如何告诉 Chrome 从网站清除缓存和 cookie?
【发布时间】:2017-09-20 08:57:52
【问题描述】:
所以我最近刚刚通过 FileManager(网络解决方案)更新了一个网站。我遇到了一个问题,Chrome 基本上是保存以前的文件,以便网站加载速度更快。问题是,新站点不能很好地处理旧文件。因此,我必须进入隐私并清除我的数据,以便网站正确刷新以显示我更新的网站。
有没有办法用前端的代码解决这个问题?因为对于不经常清除浏览历史记录的人来说,网站在他们看来会很糟糕。感谢您的帮助!
【问题讨论】:
标签:
javascript
html
google-chrome
caching
browser
【解决方案1】:
作为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) 的方式轻松地自己生成此值。
【解决方案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)
【解决方案3】:
您可以尝试使用 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>`