2012-04-18 57 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)上工作。

相关问题