2009-09-25 75 views
3

我得到了「轉儲」ISP,總是緩存互聯網網頁和它的CSS至少1天。 儘管服務器中的css/js發生了變化,但是呈現的css沒有發生變化(我已經每次清除緩存)如何防止css和js被Internet服務提供者緩存?

如何「告訴」我的isp不緩存css和js等文件?

謝謝!

的時刻:我使用代理服務器來檢查下開發的網絡,使其沒有得到緩存..

回答

9

的方式堆棧溢出本身來解決這個問題是一個版本參數添加到CSS和JS的URL,它指的是版本的引用文件:

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

每次引用的文件發生變化,鏈接標籤的href屬性在HTML代碼中更新,因此支持緩存更新的引用文件。

+0

如何以編程方式檢索所需的引用文件的版本? Subversion關鍵字僅指您當前所在的文件。 – Clayton 2010-03-30 18:19:13

+1

您可以使用服務文件的「上次修改時間」時間戳,而不使用版本號。因此,該文件被緩存,但是一旦您修改了文件,客戶端將不會使用舊的緩存副本。 – Buttons840 2012-05-11 20:01:51

1

你可以嘗試一些隨機字符串追加到像一個外部文件中的每一個請求:

<link href="/css/style.css?cachekiller=1337" media="screen" rel="stylesheet" type="text/css" /> 

其中上述代碼中的1337應該爲每個請求隨機生成eg

<?php time() ?> 

什麼

0

您可以在HTML文件中直接包含這些文件,<script><style>標記之間。它顯然會讓你所有的HTML文件變大,但這基本上就是你要求的。

這是唯一可以100%確定你的CSS和JS沒有被緩存的方法。