php - 动态 css 的缓存 header (通过 PHP 生成)

标签 php css dynamic caching header

我的 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/

相关文章:

css - 为什么样式不根据div大小变化呢?

php - 在 Blade 模板中提交订单时,禁用选择不会验证

来自数据库和查询的 PHP

php - 有没有办法在mysql中保存尽可能小的数据

html - 如何在侧边栏 div 上设置 100% 高度?

javascript - HTML 保留 html 格式的字符串

CSS停止图像下的文字换行

php get_headers() 函数 - 有没有办法告诉这个函数不遵循重定向?

c# - 无法定义使用 'dynamic' 的类或成员,因为编译器需要类型 'System.Runtime.CompilerServices.DynamicAttribute'

c# - 如何在字典列表上动态构建分组依据