2013-09-28 78 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服務器)