我的 CSS 文件实际上是一个 PHP 文件,它以内容类型 text/css
提供,因此我可以在该文件中使用 PHP 变量。 style.php
看起来像这样:
<?php
header('Content-Type: text/css');
$bgColor = '#000';
?>
body { background:<?php print $bgColor; ?>; }
它按预期工作,但我有点担心浏览器是否缓存了动态创建的 css 文件。
当查看 firebug 中的请求时,在我看来,每次我重新加载页面时,浏览器都会重新加载 style.php
。
我已经尝试添加这些缓存 header :
header('Cache-control: must-revalidate');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 60 * 60 * 24) . ' GMT');
但运气不好。每次加载页面时仍会加载该文件。为了强制浏览器将文件缓存一定时间,适当的 header 是什么?
最佳答案
如果你想让浏览器缓存一个文件,你应该将 Cache-control header 设置为 public:
header('Cache-control: public');
must-revalidate 表示浏览器将检查文件是否已更新,这将调用您的 PHP 脚本。
关于php - 动态 css 的缓存 header (通过 PHP 生成),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2395609/