按照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。