我正在使用Workbox 2来处理"离线"我的PWA的行为。内容由HexoJS生成,并部署到GitHub Pages。以下是workbox-cli-config.js
供参考:
module.exports = {
globDirectory: "./public/",
globPatterns: ["**/*.html", "**/*.js", "**/*.css", "**/*.png"],
swDest: "public/sw.js",
clientsClaim: true,
skipWaiting: true,
runtimeCaching: [
{
urlPattern: /^https:\/\/use\.fontawesome\.com\/releases/,
handler: "networkFirst"
},
{
urlPattern: /^https:\/\/fonts\.gstatic\.com\/s\//,
handler: "networkFirst"
},
{
urlPattern: /^https:\/\/maxcdn\.bootstrapcdn\.com\/bootstrap/,
handler: "networkFirst"
},
{
urlPattern: /^https:\/\/fonts\.googleapis\.com/,
handler: "networkFirst"
},
{
urlPattern: /^https:\/\/code\.jquery\.com\/jquery-3/,
handler: "networkFirst"
},
]
};
一切都按预期工作,应用程序正确处理Chrome DevTools中的离线模式。
当我更新一些静态内容(比如HTML)并将其重新部署到GitHub页面时,会出现问题 ---我可以看到内容的更新版本但是没有始终,不在所有浏览器中。
我总是要使用"清除浏览数据" Opera或Chrome(或其他浏览器)中的操作可以刷新页面的外观,因为简单"刷新/重新加载"没有帮助。
"添加到主屏幕"问题变得更加严重。 PWA。即使通过卸载/重新安装,我也无法强制执行内容刷新。仅在Android Chrome浏览器中擦除浏览数据有助于刷新应用内容。
我的问题是:
workbox-cli-config.js
)我很乐意分享其他配置文件,如果这有助于解决问题。
PS :对于除性能之外的所有条件,该网页在灯塔中得分为100 (因为加载阻止内容为bootstrap.min.js
但在SO中读取这没关系)。