2012-04-18 100 views
5

我正在開發一個ASP.net應用程序。我可以從Firefox緩存中刪除特定文件嗎?

我必須經常更新我的CSS文件。我不想在Firefox中從about:config更新文檔頻率設置。我想讓它默認。

我使用Firefox作爲理想的瀏覽器。如果我只是更新我的CSS文件,我必須清除Firefox的整個緩存。

我想從Firefox緩存中刪除特定的文件。這可能在Firefox中。我可以在Firefox中刪除特定的Cookie。我無法從Firefox緩存中刪除特定文件嗎?

如果這是不可能的,那麼請告訴我如何使我的CSS文件的方式,它應該總是檢查(只加載,如果修改)更新的版本。我不想在任何情況下更改Firefox設置。

+0

你的意思是代碼或使用Firefox? – Gerep 2012-04-18 14:08:09

+0

@Gerep在這兩種方式.. ?? – shashwat 2012-04-19 16:41:15

+0

那麼答案是不是呢?接受的答案不適用於iframe,並且沒有答案真正回答這個問題。 – chiliNUT 2014-10-28 15:53:41

回答

2

如果我沒有記錯的話,組合鍵CTRL + F5夾緊緩存,並且必須重新加載css文件。

1

使用ETag將是一個不錯的選擇。通過在HTTP響應中設置Max-Age Header,您可以允許客戶端在有限的時間內緩存資源。此後,客戶端將向服務器發出條件GET請求。如果請求中的ETag(存儲在If-None-Match標頭中)與服務器上的ETag不匹配,則修改的資源將被髮送到客戶端。否則,服務器以HTTP 304 Not Modified響應,客戶端可以再次在有限的時間內緩存內容。這種方法可以用於特定的文件或目錄。

+0

我提高了你的答案。但我認爲這些可以在IIS級配置,在我的情況下(共享主機),我沒有訪問IIS配置的權限。有沒有替代的相同。 – shashwat 2012-04-19 16:52:32

1

將上次更新時間戳添加到鏈接的文件。 這是它看起來像在PHP

<link type="text/css" rel="stylesheet" href="css/style.css?lu=<?php echo filectime('css/style.css') ?>" /> 

這將導致瀏覽器重新加載,只有當文件被更新的文件。

0

這通過腳本幾行是可能的(要在瀏覽器控制檯,Ctrl+Shift+J運行):

// load the disk cache 
var cacheservice = Components.classes["@mozilla.org/netwerk/cache-storage-service;1"] 
    .getService(Components.interfaces.nsICacheStorageService); 
var {LoadContextInfo} = Components.utils.import("resource://gre/modules/LoadContextInfo.jsm",{}) 
var hdcache = cacheservice.diskCacheStorage(LoadContextInfo.default, true); 

// compose the URL and submit it for dooming 
var uri = Components.classes["@mozilla.org/network/io-service;1"] 
    .getService(Components.interfaces.nsIIOService).newURI(prompt("Enter the URL to kick out:"), null, null); 
hdcache.asyncDoomURI(uri, null, null); 

只要你知道CSS文件的絕對地址,你可以取代prompt("Enter the URL to kick out:")與網址。

改編自DoomEntry.js,確認可以在最新的Firefox(Quantum)上工作。

相關問題