缓存回显 CSS 代码的 PHP 页面


Cache PHP page that echoes CSS code

按照SO上接受的答案,我正在尝试创建一个可以用PHP编辑的样式表。

发生了什么事情。。。

我正在尝试在用户的浏览器中缓存样式表(名为css.php),以便他/她不必在每次页面加载时加载它,并为此设置了以下标题:

header('Content-Type: text/css;;charset=UTF-8');
header('cache-control: max-age=86400;');
header('Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT;');
header('Expires: Sat, 22 Nov 2014 16:00:00 GMT;');
header('cache-control: max-age=86400;');

以下是默认发送的其他标头:

Connection:"Keep-Alive"
Content-Encoding:"gzip"
Content-Length:"393"
Date:"Fri, 21 Nov 2014 17:00:50 GMT"
Keep-Alive:"timeout=5, max=99"
Server:"Apache"
Vary:"Accept-Encoding"
X-Frame-Options:"SAMEORIGIN"

但是,在加载多次引用css.php页面的页面时,它每次都会继续重新加载 CSS 页面。

我怎么知道这个...

每次我在 apache 服务器访问日志上加载使用样式表的页面时,我都会收到对 css.php 页面的点击。

我可以看到我的 Firefox 浏览器正在访问Inspect Element工具中的css.php页面。它每次都收到一个HTTP 200

我该怎么办?

不要创建一个动态的CSS文件,而是每次使用PHP的file_put_contents()函数更改标准文件。

例:

 file_put_contents("styles.css", $css_input);

这样,浏览器将像往常一样缓存文件。

例:

<link rel="stylesheet" type="text/css" href="styles.css"/>

当您更改实际的 CSS 时,浏览器将在重新启动时自动加载新的 CSS。