我试图了解工作箱和服务人员。
在使用workbox-webpack-plugin和GenerateSW模式时,用于预缓存资产的工作盒策略是什么?即。 cacheFirst,staleWhileRevalidate等。因为似乎我没有为预缓存的资产设置路由/策略,以便服务工作人员更新这些资产的缓存。那么这些的默认处理程序是什么?
其次,服务器响应中的Cache-Control标头如何在刷新资产的工作箱策略中发挥作用?如果有的话。
回答有关/index.html根资产的问题对我来说最有帮助。
谢谢。
答案 0 :(得分:2)
workbox-webpack-plugin
生成一个服务人员,该人员使用一组URL(以及每个URL的可选修订信息)来调用workbox.precaching.precacheAndRoute([...])
。
对precacheAndRoute()
的调用有两件事:
预缓存所有提供的URL。
自动为您创建一个fetch
处理程序,该处理程序将检查传入的请求以查看其是否与预缓存的URL匹配,如果匹配,则使用有效的缓存优先策略进行响应。 (这是和路线部分。)当存在匹配项时,code that gets invoked并不是字面上的workbox.strategies.cacheFirst()
,而是大致等同的。
Workbox将automatically avoid浏览器的HTTP缓存-它使用该信息作为URL内容可能随时间变化的信号。 workbox-precaching
模块的docs揭示了正在发生的事情。