我有这样的动态 CSS 文件:
$Css = get_from($_u_6);
/* do stuff and other things here... */
$expires = 60*60*24;
header("Pragma: public");
header("Cache-Control: maxage=".$expires.", must-revalidate, public");
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');
header('Content-type: text/css');
echo $Css;
header 设置正确: http://i.imgur.com/MIH7j5U.png
但服务器始终以 HTTP 200 OK(和正确的内容)作为响应,而不是以 HTTP 304(未修改) 响应。
如何说服浏览器和服务器缓存这些动态 css 文件并发送 304 响应?
最佳答案
Expires:
header 告诉浏览器或缓存服务器它可以在不从源服务器重新加载的情况下继续重复使用同一资源多长时间。
如果您希望浏览器发出条件请求(例如使用If-Modified-Since:
或If-None-Match:
),您需要发送Last-Modified:
和/或 ETag:
header ,并且您需要编写代码来测试这些 header 并生成适当的响应( 304
或 200
)。
关于php - 浏览器未缓存动态 CSS - 响应返回 200 OK 而不是 304 Not Modified,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22866149/