2014-02-11 73 views
1

我想緩存圖像,但不是像CSS和JS的某些文件。我只發現如何不緩存一切,有沒有辦法有選擇地緩存無論我想要的?如何緩存圖像但不是JS和CSS文件?

// meta tags to not store cache 
<meta http-equiv="Cache-control" content="no-cache"> 
<meta http-equiv="Expires" content="-1"> 

// force reload cache in JS 
location.reload(true); 
+0

從服務器發送適當的緩存控制標頭。 – Barmar

+0

您可能想要版本js和css文件。然後,新文件將被緩存,當你改變他們 – mplungjan

回答

2

您可以使用服務器配置,而不是JavaScript或元標記。配置你的服務器返回圖像的遠期期貨緩存標頭,但是Cache-Control: must-revalidate等適用於JS和CSS。

但是認真考慮是否真的要強制用戶在每次訪問頁面時重新請求JS和CSS。假設HTML內容定期更改,最好讓它們重新驗證HTML,並使用版本化的路徑到達使用far-futures過期頭的JS(script.v2.jsscript.v3.js)和CSS(style.v2.cssstyle.v3.css)。 HTML條目頁面可以在更改文件時引用最新版本的文件。

+1

進一步閱讀[mnot](http://www.mnot.net/cache_docs/) – Quentin

+0

感謝您的提示。如果我們有很多頁面,這是真的,但我正在使用的網站只有一個長頁面。 CSS,HTML內容和JS每天更新,很少有任何圖像,所以我不希望用戶意外地用新的HTML或緩存的CSS加載緩存的JS等等。我想確保用戶始終使用更新的代碼。 –

+1

@SamiA:如上所述,如果您要更新HTML,則可以使用版本化路徑來緩存JS和CSS。無需防止緩存JS和CSS。 –

相關問題