sw-precache-config,忽略路径不起作用?

时间:2018-04-21 07:36:14

标签: javascript service-worker

我有以下sw-precache-config.js

module.exports = {
  staticFileGlobs: [
    'index.html',
    'manifest.json',
    'bower_components/webcomponentsjs/*',
  ],
  navigateFallback: 'index.html',
  runtimeCaching: [{
    urlPattern: /.+\/api\/.+/,
    handler: 'networkOnly',
  }],
};

我使用service-worker(使用上面提到的配置生成)来缓存资源。

当我打开没有缓存资源的myapp / api / route时(首次访问网站),它运行正常。

如果我打开myapp的主页面,浏览器会缓存资源并对myapp / api / route的后续请求导致问题(myapp的主页面布局已生成,但没有数据)。

当我清除浏览器'缓存(Chrome - 开发人员工具 - 选项卡应用程序 - 缓存存储 - 清除)我可以再次打开myapp / api / route。

所以我的问题是:如何强制浏览器忽略所有" myapp / api / *"中的service-worker.js。路线?

1 个答案:

答案 0 :(得分:1)

您只需忽略包含该模式的请求即可。

// service-worker.js   
self.onfetch = evt => {
  let path = new URL(evt.request.url).pathname;
  if(path.startsWith('/myapp/api')) {
    // these requests will be networked
    return;
  }
  // Handle other requests here
};