在"已安装"更新Workbox控制的预缓存项目(添加到主屏幕)PWA

时间:2018-03-15 15:44:26

标签: offline progressive-web-apps workbox

我正在使用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浏览器中擦除浏览数据有助于刷新应用内容。

我的问题是:

  • 当我重新访问页面或刷新已安装的PWA时,是否可以让预先缓存的静态资产自动更新?
  • 我是否以错误的方式配置Workbox(请参阅上面的workbox-cli-config.js
  • 迁移到Workbox 3会有什么不同吗?

我很乐意分享其他配置文件,如果这有助于解决问题。

PS :对于除性能之外的所有条件,该网页在灯塔中得分为100 (因为加载阻止内容为bootstrap.min.js但在SO中读取这没关系)。

0 个答案:

没有答案