safari - 如何让 Safari 不使用页面的缓存版本?
问题描述
在 MacOS 10.15.4 上的 Safari 13.1 中,我有一个似乎无法清除的页面缓存。
我在一个网站上工作,服务于localhost
. 当我加载页面时,我可以在我的服务器日志中看到 Safari 请求该页面,但它会忽略响应并显示该页面的过时版本。
如果我关闭网络检查器,页面的当前版本会按预期加载。如果我重新打开 Web 检查器,则会加载缓存的版本。
我试过了:
- 正常页面刷新
- 进入
Network
Web 检查器的选项卡并切换“加载资源时使用资源缓存”按钮 - 单击检查器中的“重新加载”按钮
- 正如该按钮的工具提示所建议的那样按“option + command + r”,这应该是“重新加载页面忽略缓存”
Develop -> Empty Caches
- 退出 Safari 并再次打开
没有什么帮助。
在检查器的网络选项卡中,对主页的请求在“传输大小”列中显示“(检查器覆盖)”,这似乎确认它正在使用某种缓存。
当网络检查器打开时,如何让 Safari 不为此页面使用缓存?
解决方案
摆脱“本地覆盖”
Web 检查器的“网络”选项卡的“传输大小”列中的消息“(检查器覆盖)”表示已设置本地覆盖。
另外,正如该页面所说,我没有注意到该页面的图标在“网络”选项卡中是倒置的。
当设置了本地覆盖时,
[Web 检查器将] 拦截网络活动并将其替换为本地覆盖,允许快速本地测试而无需修改服务器上的任何内容。
当 Web Inspector 打开时,被检查页面发出的与本地覆盖的 URL 匹配的网络请求将改为使用来自 Web Inspector 的响应内容和 MIME 类型、响应状态和响应标头,而不是来自网络或内存/磁盘缓存。
https://webkit.org/web-inspector/local-overrides/
就我而言,我不知道这个功能(这实际上很酷!)并且显然是偶然创建了一个覆盖。
要删除本地覆盖,请进入 Web 检查器的“源”选项卡,找到左侧的“本地覆盖”部分,然后取消选中相关页面的本地覆盖或右键单击它并选择“删除本地覆盖”。
推荐阅读
- ms-project - 使用过滤器计算 %
- python - 光标移动离线 Turtle
- c# - 如何在第三个中显示两个文本框控件内容,仅在 xaml 绑定中使用 WPF 中的连接,没有视图模型代码和代码后面的代码
- javascript - 按钮 onClick 在我的反应组件中不起作用
- reactjs - 动态地将姓名和电子邮件添加到状态
- python-3.x - 使用 countvectorizer 和余弦距离匹配来自不同集合的文档
- java - 如果给定的字母1不存在,Java如何打印-1
- python - 在谷歌学者中缺少引用的 25 位作者列表中循环
- python - 如何在 python 中运行 Powershell 脚本
- django - 如何在 Django 中处理不同模型的文件上传?