2009-01-13 39 views
46

我在瀏覽我最喜歡的網站的HTML ...恩...我看到這個在標記:'?'是什麼?在一個Css鏈接?

<link href="/Content/all.min.css?d=20090107" rel="stylesheet" type="text/css" /> 

什麼呢做「D = 20090107?」?我假設它是某種日期,但我不確定它爲什麼在文件路徑中。有任何想法嗎?

+0

@James Burgess:輕輕一點的google遞歸。 =) – Jronny 2010-07-23 02:29:01

回答

69

這是爲了給文件名添加一些唯一性,以便當他們更改CSS文件時,他們可以更改額外位以完全確保每個客戶端都將重新加載CSS,而不是使用緩存版本。

的Web服務器將忽略該參數和服務/Content/all.min.css正常

注:雖然這是可能是動態生成的CSS,這是確保重載一個常見的成語,並給予該參數是一個日期,似乎很有可能。


編輯:Podcast 38提到了這一點......

我們已經使用過期或 Cache-Control頭,因爲我們 推出。這可以節省瀏覽器 往返時不經常 更改項目,如圖像, javascript或css。不足的是 ,那當你確實改變 這些文件時,你必須記住要 更改文件名。 我們的 構建過程的一部分現在使用版本號「標記」這些文件 ,因此我們不再需要 必須手動執行此操作。

+0

有多聰明。這意味着我們總是欺騙瀏覽器該文件被更改! – istrone 2011-10-09 14:08:40

12

這是每次樣式更新時「清除緩存」。我會推測,每當有變化時,對這些風格負責的人都會增加它。這是因爲瀏覽器在樣式字段中看到了一個不同的URL,所以它將獲取最新版本,即使它在技術上位於服務器上的相同位置。

正如在評論中有幫助地指出的那樣,css文件通常會在將來設置好過期時間,這種方法是緩存相關頭文件的好辦法。

相當有用的把戲。

+2

是的,服務器將在遠期爲css文件設置過期標頭,以防止不必要的請求返回未修改的響應。因此,當文件確實發生變化時,服務器需要調整文件名以防止瀏覽器緩存命中。 – CurtainDog 2010-06-12 11:27:56

4

它是讓瀏覽器認爲它是一個新的文件,每次刷新其緩存。

當您的樣式表定期更改時非常有用...

相關問題