我在各種網站上看到開發人員如何通過指定類似於以下內容的查詢字符串來編輯他們的css/javascripts文件:如何在<HEAD>部分中對文件進行版本控制?
<head>
<link rel="stylesheet" href="css/style.css?v=1">
<script src="js/helper.js?v=1">
</head>
這是怎麼做到的?這是一個好習慣嗎?我一直在尋找,但顯然,我不是在尋找合適的條款。如果重要,我正在使用ASP.NET。
編輯::我剛注意到(通過Firebug)如果我「版本化」我的文件(?v = 1),它們將始終加載並始終覆蓋緩存。有辦法嗎?
提前致謝。
這很有趣。你能詳細說明哪些瀏覽器有問題嗎?如果您使用電子標籤代替上次修改日期或與上次修改日期結合使用,您會得到相同的行爲嗎? – 2010-08-11 17:42:02
這主要是一個緩存問題。如果瀏覽器下載'style.css',然後頁面稍後請求,瀏覽器很可能會使用它已經下載的版本。但是,如果它看到'style.css?v = 1'而不是'style.css',它會將其視爲另一個文件並下載新版本。 – 2010-08-11 17:44:32
沒錯,但是當從服務器請求文件時,瀏覽器應該提供存儲在其緩存中的文件的最後修改日期和/或電子標籤。這使服務器有機會返回HTTP304(未修改)而不是整個文件。我想知道更多關於何時和爲什麼這個機制失敗。 – 2010-08-11 17:47:26