我該如何緩存每隔幾分鐘可能更改一次的映像,以便每小時只生成一次?緩存動態GD映像
有人告訴過我這樣的事嗎?
header('Content-type: image/png');
header("Cache-Control: private, max-age=10800, pre-check=10800");
header("Pragma: private");
header("Expires: " . date(DATE_RFC822,strtotime(" 1 hour")));
但它確實更新每一個變化,我不知道這是不是意味着它沒有緩存或改變覆蓋緩存?
我試圖通過一些其他的主題,但他們沒有解決我的具體問題,或鏈接到死網頁。
這樣的緩存也是以每個客戶端爲基礎的,它不會被緩存給以前從未訪問過該網站的人。我將圖像保存爲一個文件,然後在下次生成時檢查文件mTime並重新生成文件或提供當前文件。一個更大的問題是,客戶端瀏覽器可能會捕獲舊版本的文件,並且在更改後不會看到它,從而得到此文件中的mTime(img src),如path/file.jpg?12345其中12345是時間戳。 – ArtisticPhoenix
這聽起來像一個堅實的計劃。謝謝。我已經意識到一個用戶沒有一個緩存,而這個緩存是這個世代的來源。只是不確定如何確保它不會被渲染。 – WASasquatch
將圖像保存爲文件對緩存圖像來說是完全有效的,這是針對因更改而重新創建的圖像。瀏覽器或客戶端緩存是一個不同的主題。幾乎不可能不緩存它的客戶端,一些瀏覽器將忽略頭。 Wordpress使用在CSS和JS文件中包含版本號的相同想法來防止/刷新客戶端緩存。 – ArtisticPhoenix