我得到了「轉儲」ISP,總是緩存互聯網網頁和它的CSS至少1天。 儘管服務器中的css/js發生了變化,但是呈現的css沒有發生變化(我已經每次清除緩存)如何防止css和js被Internet服務提供者緩存?
如何「告訴」我的isp不緩存css和js等文件?
謝謝!
的時刻:我使用代理服務器來檢查下開發的網絡,使其沒有得到緩存..
我得到了「轉儲」ISP,總是緩存互聯網網頁和它的CSS至少1天。 儘管服務器中的css/js發生了變化,但是呈現的css沒有發生變化(我已經每次清除緩存)如何防止css和js被Internet服務提供者緩存?
如何「告訴」我的isp不緩存css和js等文件?
謝謝!
的時刻:我使用代理服務器來檢查下開發的網絡,使其沒有得到緩存..
的方式堆棧溢出本身來解決這個問題是一個版本參數添加到CSS和JS的URL,它指的是版本的引用文件:
<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=4542">
每次引用的文件發生變化,鏈接標籤的href屬性在HTML代碼中更新,因此支持緩存和更新的引用文件。
你可以嘗試一些隨機字符串追加到像一個外部文件中的每一個請求:
<link href="/css/style.css?cachekiller=1337" media="screen" rel="stylesheet" type="text/css" />
其中上述代碼中的1337應該爲每個請求隨機生成eg
<?php time() ?>
什麼
您可以在HTML文件中直接包含這些文件,<script>
或<style>
標記之間。它顯然會讓你所有的HTML文件變大,但這基本上就是你要求的。
這是唯一可以100%確定你的CSS和JS沒有被緩存的方法。
如何以編程方式檢索所需的引用文件的版本? Subversion關鍵字僅指您當前所在的文件。 – Clayton 2010-03-30 18:19:13
您可以使用服務文件的「上次修改時間」時間戳,而不使用版本號。因此,該文件被緩存,但是一旦您修改了文件,客戶端將不會使用舊的緩存副本。 – Buttons840 2012-05-11 20:01:51