【发布时间】:2015-09-01 01:54:41
【问题描述】:
许多 PHP 开发人员在他们的 PHP 页面顶部添加了 no-cache 标头,我也这样做了,原因很明显。由于 PHP 生成的内容通常是动态的,让浏览器缓存它们会导致向用户呈现过时的数据。为了避免这种缓存通常被禁用。
<?php
//no cache headers
header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
问题在于,由于此标头,我的图像、javascript 文件和 css 文件也是静态的,因此可以(并且应该)被缓存,也没有被缓存。这会大大降低网站速度。
有没有办法不缓存 PHP 内容,但仍然缓存 js/images/css?
假设我拥有修改 (linux) 服务器配置、HTACCESS 以及 PHP 文件本身的完全访问权限,如何实现这一点?
或者动态 PHP 文件不需要整个“无缓存”?即使它们被 url 重写以显示无扩展名。
【问题讨论】:
-
你已经有
header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");了对吧? -
是的,正如我所发布的,为什么?
-
对不起,我弄糊涂了。不要介意我的评论!
-
@GillesLesire 看看这个可能吗? askapache.com/hacking/speed-site-caching-cache-control.html
标签: javascript php css image caching