2013-04-05 44 views
5

是否存在元標記或我可以使用的東西,它告訴瀏覽器在特定日期之前不使用緩存。如果緩存日期超過特定日期,請告訴瀏覽器更新緩存

例如

<meta "only use cache if cache is AFTER 4/4/2013">

如果緩存舊它需要下載所有的新的JavaScript,CSS,圖片等。

我做了很多更新的網站,然後它搞砸了誰的人仍然有一個緩存(並且你不能指望他們知道按ctrl + f5或ctrl + r)。

+0

你不能強迫瀏覽器重用緩存。你可以變得富有創造性並且在過去設置緩存過期日期或者其他事情,但是關於它。 – PlantTheIdea 2013-04-05 21:34:25

+0

在商業網絡上,我確信您可以通過GPO完成此操作。 – RandomUs1r 2013-04-05 21:36:19

+0

你可以嘗試關閉緩存完全http://stackoverflow.com/questions/1341089/using-meta-tags-to-turn-off-caching-in-all-browsers – btevfik 2013-04-05 21:38:03

回答

2

我通常只是在末尾加上一個GET參數與腳本的版本我提出他們

所以如果你在

www.example.com/script.js 

有你的JavaScript中使用的URL

www.example.com/script.js?foo=1 

當我每次增加foo的值時,這會強制瀏覽器重新讀取腳本。

+0

這是海報的最佳答案題。它允許您在_you_需要時有效地使緩存失效,獨立於以前設置的標題。唯一的缺點是你的頁面不能從文件系統進行測試,而只能從web服務器進行測試,因爲文件系統會將param = bla識別爲文件名的一部分。你可以通過在文件名中加入一個版本號來解決這個問題,但是還有其他的缺點:這可能意味着你必須在許多HTML頁面中更改CSS標籤,或者你需要使用服務器端包含系統來修復那也需要一臺服務器。 – 2013-04-06 09:36:32

0

這是從.htaccess文件配置了ExpiryDates

(以下礦井比如我的主機運行PHP/Apache服務器 - 000webhost.com)

<IfModule mod_expires.c> 

# Enable expirations 
ExpiresActive On 

# My favicon 
ExpiresByType image/x-icon "access plus 1 year" 

# Images 
ExpiresByType image/gif "access plus 1 month" 
ExpiresByType image/png "access plus 1 month" 
ExpiresByType image/jpg "access plus 1 month" 
ExpiresByType image/jpeg "access plus 1 month" 
ExpiresByType text/css "access plus 1 week" 

# Javascript 
ExpiresByType application/javascript "access plus 1 year" 

</IfModule> 
+0

按照OP的要求,此方法如何處理特定的截止日期? – showdev 2016-06-20 17:52:56

1

沒有一個meta標籤僅在特定日期後設置緩存,但如果您使用任何服務器語言(PHP,.NET,ruby,phyton),則可以將緩存控制設置爲no-cache,然後動態設置標題以在特定日期後開始緩存。

例如使用PHP:

<?php 
$cdate = date('Ymd'); 
if ($date > '20130404') { 
    header('Cache-Control: max-age=28800'); //cache lifetime to 8 hours 
} else { 
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
} 
?>