答案1
选项 1:暂时禁用缓存
- 打开开发者工具(按F12或菜单,更多工具,开发者工具)
- 打开开发者工具设置(按F1或 DevTools 菜单、设置)
- 在“偏好设置”窗格的网络标题下,选中“禁用缓存(当 DevTools 处于打开状态时)”
选项 2:禁用会话缓存
使用命令行开关启动 Chrome --disk-cache-size=1 --media-cache-size=1
,将缓存限制为 1 个字节,从而有效地禁用缓存。
选项 3:手动强制刷新
重新加载当前页面,忽略缓存内容 :Shift+F5或 Ctrl++Shiftr
Chrome 键盘快捷键 - Chrome 帮助(在“网页快捷方式”下)
选项 4:额外的重新加载选项(来源)
打开开发人员工具后,右键单击“重新加载”按钮以显示重新加载菜单,其中包含以下内容:
- 正常重新加载 (Ctrl+R)
- 硬重载(Ctrl+Shift+R)
- 清空缓存并硬重新加载
答案2
它可能与 chrome 更新不是 100% 相关,但是为了进一步发展。就像 @Dom 所说的那样,您可以在资源后添加 ?v=#。自动化该过程的一种方法是散列所述文件的内容并将其用作版本。
如果有帮助的话,我有一段关于如何在 C#(使用 Razor 实现)中实现这一点的代码片段。
帮手:
public static string HashUrl(string relativeUrl)
{
var server = HttpContext.Current.Server;
if (File.Exists(server.MapPath(relativeUrl)))
{
byte[] hashData;
using (var md5 = MD5.Create())
using (var stream = File.OpenRead(server.MapPath(relativeUrl)))
hashData = md5.ComputeHash(stream);
return relativeUrl.Replace("~", "") + "?v=" + BitConverter.ToString(hashData).Replace("-", "");
}
return relativeUrl + "?v=notFound";
}
执行:
<link rel="stylesheet" [email protected]("~/Controllers/Home/Views/Index.css") />
希望这可以帮助
编辑---有些人要求一些构建运行时间,对于 1000 个小资源,大约需要 11 毫秒。
https://en.code-bude.net/wp-content/uploads/2013/08/md5_performance_benchmark_2.png
答案3
在其他情况下,这些操作可能无法实现,例如想要强制刷新您无权访问的最终用户的计算机,您可以将版本号附加到脚本名称作为查询参数,使浏览器将其识别为不同的文件. 即. example.js?v=1
. 请记住您需要在每次重新加载时更改号码以强制执行。
您也可以通过本地开发来执行此操作,但开发工具方法更为高效。
答案4
如果您正在开发网站,那么您应该知道 Chrome 需要设置must-revalidate
才能Cache-Control
在服务器上更改文件时正确地重新获取文件。
其他答案告诉您如何按 SHIFT-F5 强制您自己的 Chrome 版本重新获取所有文件。但是,每次网站发生变化时都告诉网站的所有用户这样做是否合理?如果您设置Cache-Control
为包含must-revalidate
,那么 Chrome 将检查是否有任何文件已更改,然后在需要时正确下载它们。
请参阅此博客文章中的详细信息: https://agiletribe.wordpress.com/2018/01/29/caching-for-chrome/