当我使用curl命令时,所有 header 都是正确的,但文件没有缓存
CF-Cache-Status: MISS
通过curl命令显示。
> < HTTP/1.1 200 OK < Date: Sat, 02 Jun 2018 05:57:28 GMT <
> Content-Type: image/png < Content-Length: 2293 < Connection:
> keep-alive < Set-Cookie:
> __cfduid=d3cf179afd212660124585350d19e88c81527919048; expires=Sun, 02-Jun-19 05:57:28 GMT; path=/; domain=.mayan.cf; HttpOnly <
> X-Powered-By: Express < Accept-Ranges: bytes < Cache-Control: public,
> max-age=86400 < Last-Modified: Fri, 01 Jun 2018 15:39:06 GMT < ETag:
> W/"8f5-163bc009a0c" < CF-Cache-Status: MISS < Expires: Sun, 03 Jun
> 2018 05:57:28 GMT < Server: cloudflare < CF-RAY: 4247aec4300930f6-SIN
> < { [1905 bytes data]
> * Connection #0 to host mayan.cf left intact
最佳答案
Cloudflare 使用一些启发式方法,仅根据请求来尝试猜测内容是静态(可缓存)还是动态。如果它在请求时猜测错误,它不会缓存响应。您可以通过将页面规则“缓存级别”设置为“缓存所有内容”来禁用此启发式 - 然后 Cloudflare 将假定响应始终可缓存。
尝试设置页面规则并查看是否有帮助。
关于node.js - 即使 header 为 "Cache-Control: public, max-age=86400",Cloudflare 也不会缓存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50654012/