3

我正在使用 PHP 创建可维护的样式表,如下文所述: http ://www.barelyfitz.com/projects/csscolor/

然而,由于 PHP 需要一点时间来“动态地”生成这个文件,它不会被客户端的浏览器缓存,并且会在几分之一秒内将所有元素显示为空白/无样式。有没有办法缓存 CSS 或删除该工件?

网站参考是http://www.leadwerks.net/

谢谢!

4

1 回答 1

3

如果 CSS 文件是动态生成的,但不是每个请求都更改,请发送很远的过期标头,并将最后修改时间附加到文件中,以便在需要更新时破坏缓存。

更新

所以我猜你的PHP文件会在某个地方......

header('Content-Type: text/css');

...所以添加这个...

header('Expires: '.gmdate('D, d M Y H:i:s', strtotime('+1 year')).' GMT');

然后,在引用 CSS 文件时,执行此操作...

<?php echo $file = '/styles/custom.php' ;?>
<link rel="stylesheet"
      type="text/css"
      href="<?php echo $file; ?>?m=<?php echo filemtime($file); ?>"
/>

没有这个,用户在他们第一次下载 CSS 后的一年内都看不到你网站的变化。更新文件时,您将更改附加的数字。如果您没有实际更改文件(它使用数据库调用),则可以选择最后更新的行或附加版本控制号。

于 2011-02-14T23:55:12.917 回答