当托管在 CDN 上时,确保服务工作者得到更新?

Ensure service worker is updated when hosted on a CDN?

在生产环境中,我们的静态文件是通过 Akamai(但在我们的域上)提供的,包括我们的 service worker。

默认情况下,我们正在缓存服务工作者,但它似乎并不总是得到更新。

这里正确的策略是什么?我们是否应该将 service worker 设置为永远不被缓存,并在 service worker 中每次调用都命中以每次拉取新的 service worker?

service worker,如果有新的,应该至少每 24 小时更新一次,即使您将 'max-age' 设置为大于 24 小时的值:https://github.com/slightlyoff/ServiceWorker/blob/master/explainer.md#updating-a-service-worker

浏览器会在每次加载页面时检查是否有更新,但会服从缓存。因此,您可以使用 'max-age' 来决定您希望浏览器检查更新的频率。