请查看我的网站:vynora
尚未完成。我已将PHP标头放在HTML页面的顶部:
<?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start(); ?>
<?php
header("Cache-Control: max-age=6000");
?>
当我访问Google的pagespeed时,它告诉我应优化浏览器缓存,请查看:Google pagespeed
但我已经使用过PHP。那怎么可能呢?
答案 0 :(得分:2)
问题不在此页面而不在PHP脚本中。请参阅Google的建议:
以下可缓存资源具有 新鲜的一生。指定一个 到期至少一周 以下资源的未来:
- http://www.vynora.com/arrow.png(未指定过期)
- http://www.vynora.com/bing.png(未指定过期)
- http://www.vynora.com/dailymotion.png(未指定过期)
- http://www.vynora.com/dd_arrow.gif(未指定过期)
- http://www.vynora.com/deviantart.png(未指定过期)
- http://www.vynora.com/flickr.png(未指定过期)
- http://www.vynora.com/google.png(未指定过期)
- ...
这意味着,您应该缓存静态文件 我可以看到,你使用Apache。在这种情况下,您可以使用mod_expires
例如,您可以在.htaccess
文件中添加以下行:
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 86400 seconds"
ExpiresByType application/x-javascript "access plus 86400 seconds"
答案 1 :(得分:1)
要将页面缓存到用户浏览器中,请添加以下标题:
header("Cache-Control: private, max-age=6000, pre-check=6000");
header("Pragma: private");
header("Expires: " . gmdate("D, d M Y H:i:s"). " GMT");
GZIP:
http://www.whatsmyip.org/http_compression/?url=aHR0cDovL3d3dy52eW5vcmEuY29tLw==
说它gzipped
http://redbot.org/?uri=http%3A%2F%2Fwww.vynora.com%2F
说它gzipped
答案 2 :(得分:1)
这可能不起作用,因为header()之前可能有空格。 试试这样:
<?php
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) {
ob_start("ob_gzhandler");
} else {
ob_start();
}
header("Cache-Control: max-age=6000");
?>
您也应该设置过期的标题,因为旧浏览器不理解“max-age”。
顺便说一句:您的服务器当前正在发送“max-age:0”。