我在我的react应用程序中使用sw-precache-webpack-plugin
插件,用于通过束拆分来缓存静态资产。到目前为止,我使用js
策略仅缓存静态资产(css
,fonts
,images
,cache 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$/],
}),