html页面缓存纪txt,cdn缓存的html静态页未更新小记
今天遇到一個html靜態頁面始終不更新的問題,抽空找了下原因。
現象:上線了一個靜態頁面,強刷、清理瀏覽器緩存都無法更新資源。顯然不是瀏覽器的問題,應該是cdn這邊的緩存沒更新。https://app.xxx.com.cn/xxx/xxx.html
然后給頁面加個隨機參數就更新了https://app.xxx.com.cn/xxx/xxx.html?12
奇怪的是不加參數依然是舊內容。對比了兩個頁面的response header,除了Last-Modified的時間不一樣,其他部分基本相同:
此前懷疑cdn只更新了部分機器,但是這兩個請求的ip是相同的,從同一個節點拉取的頁面,更新問題可以排除。
在其他設備上測試也是相同的結果,可以排除本地緩存,網絡等原因。
經過上面的測試,得到一些結論:同一個頁面帶不帶query參數,返回的卻是不同的內容。
為什么是不同的結果?cdn到底更新了沒有?
基本能確定cdn將這兩個鏈接視為不同的頁面,這樣可以解釋的通:帶隨機參的頁面視為新的頁面,cdn沒有緩存,從源拉取資源。不帶參數的頁面依然是舊資源沒有更新。
登錄cdn看了域名配置:
緩存自動更新時間是1天,因此緩存沒有更新(實際上在上線流程里,發布資源后會強刷該資源緩存,但因為中間出現問題而跳過了這一步)。但是帶參數的url拉到了最新資源,說明源的資源更新了。
在域名配置里看到‘過濾參數配置’沒有打開:
官網文檔有詳細解釋:https://cloud.tencent.com/doc...
這就解釋通了,帶參數的url被當做了不同的資源。
我們不需要靠參數區分不同的資源,因此打開這一項才對。
實際上,不做任何操作,過一天等待資源更新后也會更新。(當然業務沒法等1天)
或者在管理后臺里手動刷新該url緩存也可。
總結
以上是生活随笔為你收集整理的html页面缓存纪txt,cdn缓存的html静态页未更新小记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html段落颜色字体字号,(前端)htm
- 下一篇: 如何在html中添加选择列表,html