如何让cloudlfare缓存内容但使浏览器不缓存? (因此浏览器总是在每次刷新时从CF中获取)

时间:2019-02-10 09:38:41

标签: caching cloudflare

以下代码告诉浏览器和CloudFlare不要缓存页面。 我需要CloudFlare来缓存内容。但是浏览器不缓存内容。

header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s",time()+1) . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

我要实现的用例是允许我清除缓存并让结果立即反映在访问者浏览器上。 (我正在通过API动态清除缓存)

1 个答案:

答案 0 :(得分:0)

我从以下来源找到了问题的答案:https://support.cloudflare.com/hc/en-us/articles/202775670-How-Do-I-Tell-Cloudflare-What-to-Cache-

它提到:

  

如果客户想在CDN中指定缓存超时,   与浏览器不同,我们也可以使用s-maxage:

     

Cache-Control: s-maxage=200, max-age=60

     

这将告诉Cloudflare   缓存对象200秒,浏览器缓存对象   60秒。基本上,s-maxage仅应遵循   反向代理(因此浏览器应忽略它)而另一方面   如果存在,Cloudflare会优先考虑s-maxage。注意我们   将尊重较高的值:中的浏览器缓存设置   Cloudflare或max-age标头。