要解决App Workers导致缓存始终报告CF-Cache-Status:HIT的问题,您可以尝试以下代码示例中的解决方法:
addEventListener('fetch', event => {
event.respondWith(handleRequest(event))
})
async function handleRequest(event) {
// 从缓存中获取响应
let response = await caches.match(event.request)
// 如果存在缓存,则返回缓存的响应
if (response) {
return response
}
// 否则,从源服务器获取响应
response = await fetch(event.request)
// 设置缓存标头和Cache-Control标头
response = new Response(response.body, response)
response.headers.set('Cache-Control', 'public, max-age=3600') // 设置缓存有效期为1小时
// 将响应添加到缓存中
let cache = await caches.open('my-cache')
cache.put(event.request, response.clone())
return response
}
// 示例:将所有请求都缓存起来
async function handleRequest(event) {
// ...
}
请注意,以上代码示例仅为参考,您可能需要根据您的具体需求进行相应的调整。此外,您还可以参考Cloudflare的官方文档和论坛中的更多资源来解决该问题。