服务人员缓存问题

时间:2019-09-17 07:24:59

标签: reactjs caching service-worker sw-precache

我在我的react应用程序中使用sw-precache-webpack-plugin插件,用于通过束拆分来缓存静态资产。到目前为止,我使用js策略仅缓存静态资产(cssfontsimagescache falling back to network等)。除某些我无法弄清楚的随机场景外,它的运行情况还算不错。

问题是服务工作者缓存的文件不完整。然后,即使浏览器尝试在刷新时访问该文件,也仍在通过服务工作者提供文件,这是不完整的。因此,除非我手动清除服务工作者的缓存,否则我的应用程序永远不会加载到该浏览器中。

我也检查了content-length标头,它远小于实际的content-length。浏览器上还有很多可用空间。

我没有任何前进的方向。任何帮助将不胜感激。

此插件的配置为:

   new SWPrecacheWebpackPlugin({
      dontCacheBustUrlsMatching: /\.\w{8}\./,
      filename: 'service-worker.js',
      logger(message) {
        if (message.indexOf('Total precache size is') === 0) {
          // This message occurs for every build and is a bit too noisy.
          return;
        }
        if (message.indexOf('Skipping static resource') === 0) {
          // This message obscures real errors so we ignore it.
          // https://github.com/facebookincubator/create-react-app/issues/2612
          return;
        }
        console.log(message);
      },
      minify: true,
      navigateFallback: publicUrl + '/index.html',
      navigateFallbackWhitelist: [/^(?!\/__).*/],
      staticFileGlobsIgnorePatterns: [/\.map$/, /asset-manifest\.json$/, /index\.html$/],
    }),

0 个答案:

没有答案