如提,我用php產生pdf檔案,該檔案會隨著使用者編輯而重新產生。
使用者一直反映說不管怎麼編輯都是舊的檔案,看不到有編輯修改後的內容
請他們ctrl + F5時有效時沒效,要清除瀏覽器的圖片與檔案暫存後下載才會看到新的~~
但使用者連ctrl+F5都不會...(大概有一半的人XD)
想問一下各位前輩們~~~
解決這個問題除了在檔名加上亂碼外,有沒有辦法可以讓使用者下載的時候,讓瀏覽器不要從暫存拿檔案,而是真的下載呢?
從PHP或HTML解決都可以
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
<meta http-equiv="expires" content="Sun, 01 Jan 2014 00:00:00 GMT"/>
<meta http-equiv="pragma" content="no-cache" />
只要讓連結不一樣就可以了~~
http: //abc.com/test.pdf?< ? php echo time();?>
https: //abc.com/test.pdf?v=[隨機數]
補上 cache:false
教你一招萬用機制。
如讀取的域名是 http://abc.com/test.pdf
利用程式在其域名讀取後面再加上
http://abc.com/test.pdf?<?php echo time();?>
或是 time()換成rand(111111,999999)
這樣瀏覽器就會將其視為新頁會重新下載。
如果你確定是快取的問題
1 .
如果是使用 jquery ajax
補上
cache:false
2 .
在請求的網址加上隨機數
ex:
`https://yoururl?v=${Date.now()}`