看來,文件上傳,而是由瀏覽器緩存。
嘗試在Firefox/IE中使用CTRL + F5重新加載(其他瀏覽器可能有不同的快捷鍵),您應該始終看到新文件。
資源(JS,CSS和圖像文件)在某種程度上被瀏覽器更積極地緩存。而對於HTML頁面,每次刷新時通常會有一個新的HTTP請求,對於資源,有時候根本不會生成HTTP請求。你可以通過看例如在Firebug的淨面板上。
緩存通常是一個非常棘手的話題,很大程度上取決於服務器和瀏覽器的設置和實現。
瀏覽器緩存通常通過精確的URL匹配來實現。所以,http://someserver/bg.jpg
和http://someserver//bg.jpg
是兩個完全不同的的網址。但是,許多HTTP服務器會假設您請求了相同的內容,並會發送存儲在服務器根文件夾中的bg.jpg文件的內容(您必須看到URL和與此URL關聯的內容之間的區別)。
如果您訪問了第一個URL,它將被瀏覽器緩存。然後,在您上傳新版本的圖像後,很大程度上取決於瀏覽器緩存的實施情況以及第一次下載「bg.jpg」時發送的服務器的緩存設置。例如,在HTTP響應頭中發送圖像的服務器設置可能是,在接下來的1小時內,圖像可能會被瀏覽器緩存,並直接從緩存中加載,甚至無需詢問服務器(服務器設置可能配置這種方式來避免不必要的流量)。
總是得到一個'新鮮'版本的文件的方式(有點怪異但很常用)是爲請求添加一個當前時間戳(但它通常限於服務器端生成或JavaScript腳本) - 在CSS中沒有多大意義。
所以,在我寫它的時候,這個腳本會向服務器請求 http://someserver/bg.jpg?1334442703
但幾秒鐘後,當我刷新頁面,這將是 http://someserver/bg.jpg?1334442711
大多數服務器將放棄查詢字符串('?'後面的字符串),並且只會爲兩個查詢返回bg.jpg
文件的相同內容,但由於圖像的URL不同,所以瀏覽器都不應從緩存中讀取圖像。
真棒解釋=) – 2012-04-14 21:35:35
謝謝:)你可能想了解瀏覽器緩存和代理緩存這裏很好的文章:http://www.mnot.net/cache_docs/ – 2012-04-14 21:40:27
當然我會讀。謝謝。 – 2012-04-14 21:41:55