2014-06-15 100 views
1

我只是碰到一個網站pagesource,看到這頭:我們可以將GET數據傳遞給css嗎?

<link href="../css/style.css?V1" rel="stylesheet" type="text/css" /> 

我們真的可以通過獲取數據以CSS?我嘗試搜索,但除了使用PHP之外,沒有找到任何結果。任何人都可以幫助使?V1的含義的.css

我知道這個論壇是要求編程的問題後,但我決定問這個,因爲我已經沒有結果發現在我的搜索

+0

http://stackoverflow.com/questions/952678/css-query-string –

回答

1

首先,你不能將GET參數傳遞給CSS。抱歉。不過這會很棒。

至於示例網址。它可以是任何Web服務器生成的CSS頁面(不必是PHP)。在這種情況下,服務器可以爲同一頁面的不同頁面或版本提供服務,這可能會解釋V1版本1的含義。服務器還可以使用服務器端模板動態生成頁面。這是從玉文件建立一個例子:

http://cssdeck.com/labs/learning-the-jade-templating-engine-syntax

這也正好可以用作緩存的剋星,用於控制版本。每當你輸入一個url時,瀏覽器只會在它沒有一個特定於該URL的緩存副本時纔會嘗試獲取它。如果您對內容進行了更改(在本例中爲css文件),並且希望瀏覽器使用它而不是緩存版本,則可以更改url並誘使瀏覽器認爲它是未緩存的新資源,所以它會從服務器獲取新的內容。然後,V1可以作爲一個筆記(即我已經改變了這個文件一次...兩次等)的語義含義,但實際上並沒有做任何事情,但打破了緩存。 This question addresses cache busting

0

你可以通過任何你要;服務器決定如何處理數據。

畢竟,PHP不是您創建服務器的唯一選項。如果我在Node.js中編寫了一個服務器,爲/css/style.css設置了一個路由,並根據給定的查詢返回不同的內容,服務器和瀏覽器都不會眨眼睛。

+0

我還是不明白什麼?V1可能意味着什麼。這是鏈接到一個CSS文件? JavaScript文件? –

+1

@ D.Rattansingh這通常用於緩存清除。將其更改爲?V2,瀏覽器將請求該文件的新副本,而不是使用它在本地緩存的內容。 –

+1

Chrome的開發人員工具(F12)設置有一個無價值的複選框,名爲'Disable cache(DevTools處於打開狀態)' – ChaseMoskal

1

有不同的概念。

首先,它只是一個鏈接 - 它有一個名稱,它可能有一個擴展名,但這只是人類的慣例,並不過是服務器的資源標識符。一旦瀏覽器請求它,它就成爲資源的服務器請求。服務器然後決定如何處理這個請求。它可能是一個簡單的文件,它只需要返回,它可能是一個服務器端腳本,它必須由服務器端腳本解釋器執行,或者基本上可以想象的其他任何東西。

再次,不要欺騙自己以爲「這是一個CSS文件」,只是因爲它有一個css擴展名,或者被稱爲style

無論在服務器上運行,還是實際回答請求,都會返回一些內容。然後這個東西就有了意義。它可能是CSS,它可能是HTML,它可能是JavaScript,或圖像或只是一個二進制下載。爲了幫助瀏覽器瞭解它是什麼,服務器返回一個Content-Type標題。

如果沒有給出內容類型,瀏覽器必須猜測它是什麼。或者好的網頁作者給出了一個暗示,作爲迴應 - 在這種情況下,他給出了暗示text/css。同樣,這就是返回的內容應該如何由客戶端/瀏覽器解釋,而不是應該如何在服務器端創建內容。

而關於?V1?這可能意味着不同的事情。也許用戶可以爲網站配置樣式(主題),並且此方法用於調度不同的樣式。或者它可以用於「緩存破壞」(查看它)。

+0

我已經研究過緩存清除,這很有道理。然而,你提到的最高點我的興趣是配置主題,因爲這是我從未做過的事情。我會查找它,謝謝 –

相關問題