2013-09-28 103 views
0

动态站点(100%ajax)在进入不同页面时没有更新时出现问题。我只想缓存html页面。 CSS和JS是不变的,我想缓存你知道吗?将不添加缓存meta + php标题导致css/js不缓存吗?

添加以下PHP

Response::header('Cache-Control', 'no-store, private, no-cache, must-revalidate'); // HTTP/1.1 
Response::header('Cache-Control', 'pre-check=0, post-check=0, max-age=0, max-stale = 0', false); // HTTP/1.1 
Response::header('Pragma', ' public'); 
Response::header('Expires', 'Sat, 26 Jul 1997 05:00:00 GMT');     // Date in the past 
Response::header('Expires', '0', false); 
Response::header('Last-Modified', gmdate('D, d M Y H:i:s') . ' GMT'); 
Response::header('Pragma', 'no-cache'); 

和下面的HTML

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> 
<meta http-equiv="Pragma" content="no-cache" /> 
<meta http-equiv="Expires" content="0" /> 

将它破坏的CSS/JS或只是把HTML需要重新加载。

+1

一种方法是追加'?t = <?php echo time(); ?>脚本和CSS网址。这将禁用100%缓存。 – Alex

回答

1

“我只是想缓存html页面”在你的问题中有点混乱。从我收集你的问题是,浏览器缓存内容,但你想禁用缓存。 :)

不管怎么说:

无论你在你的PHP输出添加只会影响你的PHP输出。如果您在PHP脚本中生成HTML,那么只有PHP生成的HTML受到影响,没有别的。

奖金答案:

如果您想改变缓存政策的.js和.css文件,那么你需要动粗Apache的httpd.conf或的.htaccess(假设Apache是​​HTTP服务器)