首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Workbox不覆盖默认策略

Workbox不覆盖默认策略
EN

Stack Overflow用户
提问于 2019-03-21 20:37:37
回答 1查看 193关注 0票数 0

在Nuxt Workbox中有一些覆盖默认cacheFirst策略的问题。

预期行为: staleWhileRevalidate替换了cacheFirst

nuxt.config.js:

代码语言:javascript
复制
workbox: {
  runtimeCaching: [
    {
      urlPattern: '/_nuxt/.*',
      handler: 'staleWhileRevalidate',
      method: 'GET'
    }
  ]
}

当前行为:创建新条目而不是重写。

sw.js:

代码语言:javascript
复制
workbox.routing.registerRoute(new RegExp('/_nuxt/.*'),
workbox.strategies.cacheFirst({}), 'GET')

workbox.routing.registerRoute(new RegExp('/.*'), 
workbox.strategies.networkFirst({}), 'GET')

workbox.routing.registerRoute(new RegExp('/_nuxt/.*'), 
workbox.strategies.staleWhileRevalidate({}), 'GET')

不确定我错过了什么。谢谢你的帮助。干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-27 01:00:31

我似乎已经通过添加nuxt.config.js解决了这个问题:

代码语言:javascript
复制
workbox: {
  cachingExtensions: '@/plugins/wb-ext.js'
}

那么我的wb-ext.js包含:

代码语言:javascript
复制
workbox.routing.registerRoute(new RegExp('/_nuxt/.*'), 
workbox.strategies.staleWhileRevalidate({
  plugins: [
    new workbox.broadcastUpdate.Plugin('new-update-channel')
  ]
}), 'GET')

这会将wb-ext代码添加到由Nuxt Workbox在sw.js文件中创建的自动生成的cacheFirst策略之上。

现在在开发期间,我收到一条消息,指出Workbox正在开发控制台中使用StaleWhileRevalidate,广播更新插件按预期工作。

如果您有一种更清晰的方法来实现这一点,而sw.js文件中没有冲突的策略,请随时发表评论。

谢谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55280616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档