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

标签 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;

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 并生成适当的响应( 304200)。

参见 RFC 2616 RFC 7232了解全部详情。

关于php - 浏览器未缓存动态 CSS - 响应返回 200 OK 而不是 304 Not Modified,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22866149/

相关文章:

php - 使用 mySQL 查询从登录用户中选择数据

php - 使用php从url获取内容

css - 增加 Jekyll 主题的全局宽度

html - 第一个单元格比其余单元格宽的表格

javascript - 我如何以函数的形式编写这个脚本?

php - 我如何使用 .htaccess 重定向像 (https ://example. com/digital-marketing.php/ercbierubcrei) 这样的非结构化链接?

javascript - Jquery - 菜单鼠标悬停在 <a> 而不是 <a> <span>

css - Assetic 生成了几个被删除的 CSS 文件

unit-testing - 通过gradle运行时禁用测试缓存

php - WooCommerce: header 中的迷你购物车似乎已缓存