首页 > 解决方案 > 如何让 Safari 不使用页面的缓存版本?

问题描述

在 MacOS 10.15.4 上的 Safari 13.1 中,我有一个似乎无法清除的页面缓存。

我在一个网站上工作,服务于localhost. 当我加载页面时,我可以在我的服务器日志中看到 Safari 请求该页面,但它会忽略响应并显示该页面的过时版本。

如果我关闭网络检查器,页面的当前版本会按预期加载。如果我重新打开 Web 检查器,则会加载缓存的版本。

我试过了:

没有什么帮助。

在检查器的网络选项卡中,对主页的请求在“传输大小”列中显示“(检查器覆盖)”,这似乎确认它正在使用某种缓存。

当网络检查器打开时,如何让 Safari 不为此页面使用缓存?

标签: safari

解决方案


摆脱“本地覆盖”

Web 检查器的“网络”选项卡的“传输大小”列中的消息“(检查器覆盖)”表示已设置本地覆盖

另外,正如该页面所说,我没有注意到该页面的图标在“网络”选项卡中是倒置的。

没有覆盖无覆盖

使用覆盖在此处输入图像描述

当设置了本地覆盖时,

[Web 检查器将] 拦截网络活动并将其替换为本地覆盖,允许快速本地测试而无需修改服务器上的任何内容。
当 Web Inspector 打开时,被检查页面发出的与本地覆盖的 URL 匹配的网络请求将改为使用来自 Web Inspector 的响应内容和 MIME 类型、响应状态和响应标头,而不是来自网络或内存/磁盘缓存。
https://webkit.org/web-inspector/local-overrides/

就我而言,我不知道这个功能(这实际上很酷!)并且显然是偶然创建了一个覆盖。

要删除本地覆盖,请进入 Web 检查器的“源”选项卡,找到左侧的“本地覆盖”部分,然后取消选中相关页面的本地覆盖或右键单击它并选择“删除本地覆盖”。


推荐阅读