浏览器不会缓存动态CSS - 响应返回200 OK而不是304 Not Modified

时间:2014-04-04 14:54:58

标签: php css caching

我有这样的动态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;

标题设置正确:     http://i.imgur.com/MIH7j5U.png

但服务器始终使用 HTTP 200 OK (以及正确的内容)进行响应,而不是使用 HTTP 304(未修改)进行响应。

如何说服浏览器和服务器缓存这些动态css文件并发送304响应?

1 个答案:

答案 0 :(得分:1)

Expires:标头告诉浏览器或缓存服务器在没有从源服务器重新加载的情况下可以继续重用相同资源多长时间。

如果您希望浏览器发出条件请求(例如使用If-Modified-Since:If-None-Match:),则需要发送Last-Modified:和/或ETag:标头, 您需要编写代码来测试这些标头并生成相应的响应(304200)。

有关详细信息,请参阅 RFC 2616 RFC 7232