缓存与CSS代码相呼应的PHP页面

时间:2014-11-21 17:50:43

标签: php html css apache http

根据接受的答案here on 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浏览器正在访问css.php工具中的Inspect Element页面。它每次都会收到HTTP 200

我该怎么办?

1 个答案:

答案 0 :(得分:0)

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

示例:

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

这样,浏览器会像平常一样缓存文件。

示例:

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

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