首页 > 解决方案 > service-worker.js中未添加的.html页面被缓存,可以离线使用?

问题描述

我正在构建一个 PWA。出于测试目的,我添加了一个测试 .html 页面,该页面不在 sw.js 文件夹中并且不被缓存(至少是我所期望的)。我还添加了一些测试外部链接。在手机上部署和安装后。在离线模式下,外部链接不会打开。但是 sw.js 中没有的测试页面仍然会立即加载,表明它也被缓存了。

有人可以解释这种行为吗?

信息:

sw.js 位于目录的根目录,其范围是整个目录。具有测试页面链接的页面也被缓存。

标签: javascripthtmlbrowser-cacheservice-workerprogressive-web-apps

解决方案


如果你有根级别的范围,它将缓存它内部的所有内容......默认的服务工作者助手类倾向于缓存范围内的所有 html、css 和 JS 文件。除非您发布您的软件代码,否则不能说您的情况是否发生了其他不太可能的事情。

服务人员特定于您的域和子域。所以很自然,它不会缓存您已经体验过的外部喜欢。

在这两种情况下,Service Worker 似乎都按照预期的方式工作。


推荐阅读