iT邦幫忙

0

HTML cache

html圖片要如何讓他每次都向伺服器重新請求
目前試過在head裡面加了Pragma no-cache、Cache-Control no-cache、Cache-Control no-store、cache-control max-age=-1、Expires -1、expires Wed, 26 Feb 1997 08:21:57 GMT、或者在url後面加參數、在圖片src後面加亂數皆無效,一定要使用F5重新整理才有效,有辦法在不使用F5重新整理,在網頁開啟後貼上網址直接enter可以讓他去抓最新的圖片,而不適快取圖

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

WilliamHuang
iT邦研究生 1 級 ‧ 2016-10-07 15:54:13
【**此則訊息已被站方移除**】
4
fillano
iT邦超人 1 級 ‧ 2016-10-07 17:16:26

貼上(或輸入)網址,以及按下F5,瀏覽器的行為是不一樣的。

如果之前有設過Expire、Cache-Control: public, max-age=xxxx之類的header,那到期之前,在網址列輸入網址按下enter,瀏覽器不會去伺服器檢查資源是否有更動,而是直接從Cache拿。點選連結進入也一樣。

按下F5的話,瀏覽器才會去跟伺服器確認資源是否到期或更動(request header裡面會有if-modified-since或if-none-match等)。沒更動的話伺服器會回覆304(not modified)然後就結束response。到期或是有更動時,伺服器才會真的把資源回傳。如果有設定Expire等,可能會到有更動才會更新到期時間(這個我不是很確定,你自己測試一下看看)。

如果是用Chrome的開發者工具,打開「網路」工具,關掉「Disable cache」後觀察看看。Size那一欄顯示是「(from cache)」的話,那瀏覽器根本沒有去伺服器確認,直接拿cache的。按下F5重新載入,應該會看到一些資源在Status顯示為304。其他瀏覽器的開發者工具應該也類似。

isaepfkeyr iT邦研究生 4 級 ‧ 2016-10-12 08:08:05 檢舉

我也有在開發工具觀察過,內容的地方,我資料庫改了,按enter也會更新,但是圖片的部分就一定要按F5才會更新

fillano iT邦超人 1 級 ‧ 2016-10-12 17:16:14 檢舉

你可以比較一下,網頁跟圖片的header有什麼差別...

另外,也要看你伺服器設定即使用的語言等等。

isaepfkeyr iT邦研究生 4 級 ‧ 2016-10-18 09:40:43 檢舉

目前把圖片位置放到form標籤,莫名的可以更新了,謝謝大大跟我討論方向

我要發表回答

立即登入回答