[問題] 避免瀏覽器快取靜態資源

看板java作者 (no anonymous)時間5年前 (2018/08/16 14:58), 5年前編輯推噓1(1012)
留言13則, 4人參與, 5年前最新討論串1/1
我使用Spring 4來寫一些簡單的範例, 然後想加入「避免瀏覽器快取」的功能, 一開始是在jsp檔內加入 <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> <META HTTP-EQUIV="EXPIRES" CONTENT="0"> <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 沒用 後來在靜態資源的url尾端加上版本號: <link href="<c:url value='/resources/core/css/bootstrap.min.css?1'/>" rel="stylesheet" /> <script src="<c:url value='/resources/core/js/jquery.1.10.2.min.js?1'/>"></script> 還是沒用 接著在controller的方法內加入: response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); response.setHeader("Pragma", "no-cache"); response.setHeader("Expires", "0"); 仍然沒用 最後是在Spring設定檔加入webContentInterceptor才成功避免瀏覽器快取資源 請問為什麼前3種方法都沒用,一定要用Spring自帶的物件才行呢? --------------------------------------------------------------- 剛剛又發現,如果把web.xml內處理請求的dispactherServlet 其<url-pattern>/</url-pattern> 改成<url-pattern>*.do</url-pattern> 的話,禁止瀏覽器快取的功能就又失效。這到底是為什麼? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.167.49.33 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1534402693.A.371.html ※ 編輯: lueichun (1.167.49.33), 08/16/2018 17:31:21

08/16 20:42, 5年前 , 1F
你要避免被快取的是資源檔,那跟jsp和controller就沒關係
08/16 20:42, 1F

08/16 20:43, 5年前 , 2F
url加版本號也不是像你加個1,通常是加亂數或時間吧...
08/16 20:43, 2F

08/16 20:45, 5年前 , 3F
最後那個dispatchServlet的pattern改成*.do不就顯然不會
08/16 20:45, 3F

08/16 20:45, 5年前 , 4F
match到.css或.js,那就不會經過webContentInterceptor
08/16 20:45, 4F

08/16 20:55, 5年前 , 5F
從你的描述看起來你需要先知道link resource跟主頁面是分開
08/16 20:55, 5F

08/16 20:57, 5年前 , 6F
的http request/response,你要處理的是resource就要從
08/16 20:57, 6F

08/16 20:57, 5年前 , 7F
resource會經過的處理路徑下手
08/16 20:57, 7F
OK了,謝謝

08/16 22:58, 5年前 , 8F
用一個filter過濾所有的request?不知道可不可以達到
08/16 22:58, 8F

08/16 22:58, 5年前 , 9F
目的
08/16 22:58, 9F

08/16 23:48, 5年前 , 10F
你要先搞懂瀏覽器怎麼發 req 跟收到 resp 的行為...
08/16 23:48, 10F

08/16 23:49, 5年前 , 11F
Chrome 打開, F12 開發者工具, Network 那個分頁先看懂
08/16 23:49, 11F

08/16 23:50, 5年前 , 12F
弄懂了再去 google "HTTP Caching"
08/16 23:50, 12F

08/18 08:48, 5年前 , 13F
推一下 ss 大大解釋的真清楚 …
08/18 08:48, 13F
※ 編輯: lueichun (1.162.223.177), 08/18/2018 12:17:59
文章代碼(AID): #1RTI25Dn (java)