我正在生成图像,并希望浏览器永远缓存它们,但浏览器根本不会缓存它们。这是我的php代码
header('Content-type:'.$file->content_type);
header('Expires: Thu, 15 Apr '.(date('Y')+10).' 20:00:00 GMT');
header('Content-Disposition: attachment; filename="'.$file->file_name.'"');
echo(file_get_contents($model_files->files_path.$file->md5.$model_files->seprator.$file->file_name));
这些是我在浏览器中不断得到的响应头。
Date: Thu, 02 Jun 2011 12:56:56 GMT
Server: Apache mod_fcgid/2.3.6 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
X-Powered-By PHP/5.2.15
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Expires Thu, 15 Apr 2021 20:00:00 GMT
Content-Length 321823
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Content-Type image/png
我没有设置Date、Cache Control和Pragma,但不断得到它们的响应。
我知道我可以覆盖它们,但老实说,我不知道该设置哪些值。
看看session_cache_limiter
。
您可以使用:
header( 'Cache-Control: max-age=37739520, public' );
你也可以尝试覆盖Pragma,但我认为如果设置了缓存控制,现在的浏览器就会忽略Pragma。
header( 'Pragma: public' );