关于服务人员:使用workbox-webpack-plugin时,什么缓存策略用于预缓存资产?

What workbox strategy is used for precached assets when using workbox-webpack-plugin?

我试图了解工作箱和服务人员。

使用workbox-webpack-plugin和GenerateSW模式时,用于预缓存资产的工作盒策略是什么? 即。 cacheFirst,staleWhileRevalidate等。因为似乎我没有为预缓存的资产设置路由/策略,以便服务工作人员更新这些资产的缓存。 那么这些的默认处理程序是什么?

其次,服务器响应中的Cache-Control标头如何在工作箱策略中刷新资产? 如果有的话。

回答根/index.html资产的问题对我最有帮助。

谢谢。


workbox-webpack-plugin生成一个服务工作者,该服务工作者使用URL数组(以及每个URL的可选修订信息)来调用workbox.precaching.precacheAndRoute([...])

precacheAndRoute()的调用有两件事:

  • 预缓存所有提供的URL。

  • 自动为您创建一个fetch处理程序,该处理程序将检查传入的请求以查看其是否与预缓存的URL匹配,如果匹配,则使用有效的缓存优先策略进行响应。 (这是and路由部分。)存在匹配时被调用的代码实际上不是workbox.strategies.cacheFirst(),而是大致等效的。

如果在预缓存清单中给定条目提供了带外修订信息,Workbox将自动避免浏览器的HTTP缓存-它使用该信息作为URL内容可能随时间变化的信号。 workbox-precaching模块的文档进一步说明了正在发生的事情。