使用块的 React 网站的 CDN 缓存策略

raR*_*aRa 5 caching cdn reactjs webpack code-splitting

对于使用块(代码分割)的 React 网站来说,最好的缓存策略是什么?

在使用块之前,我只会在 CloudFront 中将所有内容缓存一年,并且在部署新版本的网站后删除旧文件并使缓存失效。效果很好。

然而,在我开始使用块之后,我开始遇到问题。一个常见的问题是,在部署新版本的站点后,我删除了旧文件并使缓存失效。一名用户已经在旧版本的网站上处于活动状态,并且他的网站版本尝试加载不再存在的块,因此该网站对他来说崩溃了。

一种可能的解决方案是将所有旧文件保留一个月或更长时间,并在部署过程中删除所有早于 X 个月的文件。

有没有更好的办法解决这个问题。我是否缺少 CRA(Create React App)提供的 Service Worker 提供的一些特殊功能?如果我没记错的话,它提供了某种缓存清除功能。

谢谢。