2010-04-14 52 views
12

我注意到,在一些網站上(包括SO)鏈接到CSS的樣子:在css結尾處的問號包含url是什麼?

<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=6638"> 

我會說其安全的假設,?v=6638告訴瀏覽器加載CSS文件的版本6638 。但是,我可以在我的網站上執行此操作嗎?只需更改數字,我是否可以包含不同版本的CSS文件?

+0

http://stackoverflow.com/questions/1369354/what-is-the-use-of-v747-at-the-end-of-site-media-base-cssv747 – 2010-04-14 14:01:56

回答

19

使用不同的查詢字符串加載all.css,例如如果6637版本已經在您的機器上緩存,您將獲得新的(6638)。更改該數字(在這種情況下)將而不是給你一個不同的文件。

這只是一個緩存技巧,所以他們可以發送文件沒有過期(即你永遠不必再要求它),因爲當它確實改變,「文件名」,改變。


這就是說,你可以它使您可以根據查詢字符串參數加載不同的版本。這樣做會稍微不重要,類似於當您將不同的問題ID傳遞給此頁面的URL時,如何得到不同的問題。

+0

因此,瀏覽器只是簡單的從上次訪問的次數,然後如果下次不匹配,它會重新加載CSS文件,否則它只使用緩存的文件? – 2010-04-14 00:29:18

+0

是的,或多或少。這裏的東西是文件被髮送下來帶有額外的數據(頭文件),它們說「再也不要求這個文件 - 它永遠不會改變」。由於他們這樣做,該網站更快(少一個請求每個負載)。但是當文件*改變時,他們通過改變它的名字來傳達這個信息。 – 2010-04-14 00:30:26

+1

嘗試忽略版本號是查詢字符串參數 - 將整個事物 - 路徑,名稱,查詢字符串 - 視爲文件名的一部分。當它發生變化時,它被視爲完全獨特的「文件」或資源。 – 2010-04-14 00:32:25

相關問題