Workbox service worker maxAgeSeconds 查询
Workbox service worker maxAgeSeconds query
我已经为我的网站实现了一个 service worker。但是我不确定这个的过期设置。
我目前使用 Nextjs 进行页面渲染,使用 Workbox 和 Apollo 进行数据管理。
我的工作箱配置:
// File to generate the service worker.
require("dotenv").config()
const workboxBuild = require("workbox-build")
const { COUNTRY: country, NODE_ENV } = process.env
const urlPattern = new RegExp(`/${country}\/static\/.*/`)
// https://developers.google.com/web/tools/workbox/reference-docs/latest/module-workbox-build#.generateSW
const buildSW = () => {
return workboxBuild.generateSW({
swDest: "public/workbox-worker.js",
clientsClaim: true,
mode: NODE_ENV,
skipWaiting: true,
sourcemap: false,
runtimeCaching: [
{
urlPattern: urlPattern,
// Apply a cache-first strategy.
handler: "CacheFirst",
options: {
cacheName: "Static files caching",
expiration: {
maxEntries: 50,
maxAgeSeconds: 3600,
},
},
},
],
})
}
buildSW()
我的 Service Worker 已安装并激活,并已开始缓存文件。
我唯一的问题是这里的最大年龄不应该是 3600 岁吗?还是我做错了什么?
我认为你混淆了 Cache-Control HTTP header with the Workbox Expiration。
由于该服务可以回复请求,因此它可以 return 一个文件,而不考虑 Cache-Control header。您配置的是让 Workbox 在 50 或 3600 秒后从其缓存中逐出内容。 Service Worker 有自己的缓存,可以在 chrome dev tool
的应用程序选项卡中找到
查看此问题,了解两者如何相互作用 - If you are using Service Workers do you still need cache-control headers?
我已经为我的网站实现了一个 service worker。但是我不确定这个的过期设置。
我目前使用 Nextjs 进行页面渲染,使用 Workbox 和 Apollo 进行数据管理。 我的工作箱配置:
// File to generate the service worker.
require("dotenv").config()
const workboxBuild = require("workbox-build")
const { COUNTRY: country, NODE_ENV } = process.env
const urlPattern = new RegExp(`/${country}\/static\/.*/`)
// https://developers.google.com/web/tools/workbox/reference-docs/latest/module-workbox-build#.generateSW
const buildSW = () => {
return workboxBuild.generateSW({
swDest: "public/workbox-worker.js",
clientsClaim: true,
mode: NODE_ENV,
skipWaiting: true,
sourcemap: false,
runtimeCaching: [
{
urlPattern: urlPattern,
// Apply a cache-first strategy.
handler: "CacheFirst",
options: {
cacheName: "Static files caching",
expiration: {
maxEntries: 50,
maxAgeSeconds: 3600,
},
},
},
],
})
}
buildSW()
我的 Service Worker 已安装并激活,并已开始缓存文件。
我唯一的问题是这里的最大年龄不应该是 3600 岁吗?还是我做错了什么?
我认为你混淆了 Cache-Control HTTP header with the Workbox Expiration。
由于该服务可以回复请求,因此它可以 return 一个文件,而不考虑 Cache-Control header。您配置的是让 Workbox 在 50 或 3600 秒后从其缓存中逐出内容。 Service Worker 有自己的缓存,可以在 chrome dev tool
的应用程序选项卡中找到查看此问题,了解两者如何相互作用 - If you are using Service Workers do you still need cache-control headers?