我使用CloudflareWorker做地球图片后端,我试图使用Cloudflare缓存但cf-cache-status 字段缺失没有缓存

我正在使用 CloudflareWorkers 来处理地球图像请求,并想使用 Cloudflare 的缓存来避免过多不必要的Workers请求刷爆我的账单。我在 Worker 中设置最新图片的缓存头

return new Response(imageResponse.body, {
    headers: {
        'Content-Type': 'image/png',
        'Cache-Control': 'public, max-age=300, s-maxage=600'
    }
});

但我实际打开发现Cloudflare并没有缓存我的图片,并且我每一次刷新都发送给了Workers处理,我在F12中发现缺失cf-cache-status字段:



我尝试过设置Cloudflare Cache Rules、将访问改成访问earth.png,但Cloudflare就是不缓存图片,就是没有cf-cache-status字段,请问有没有大佬知道是我哪里配置错了吗?
我的后端地址https://earth.100713.xyz/,
https://earth.100713.xyz/time?date=2018-09-01&time=12:00:00

15 Likes

我也来学习一下后边大佬,看看有没有回复的,我的图片都是静态的路径,没有设置参数啥的所以直接就有缓存了 https://bgapi.348998.xyz/

:tieba_087::tieba_087::tieba_087:有没有懂佬啊

你能把你的Workers代码给我看看吗?

image
你有设置缓存头,你可能是在Cloudflare域名规则里设置了缓存

我这是本地用python跑的,cf tunnels穿透出来的,设置缓存头确实是写在python里的,等会回家我发出来看看

加个缓存规则试试

试过了,没有用,而且 cf-cache-status 缓存头这个项都没有出现

好像找到原因了,但是怎么解决不知道,设置页面规则也不生效
一般请求


worker请求

添加缓存可以解决

我研究一下

最新动态:我找到Cloudflare客服了,他们帮我看了下,说我的响应头带了个cookie被视作动态内容,我创建了个新的对象避免携带cookie解决了

1 Like

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。