8

我正在开发一个 ASP.net 应用程序。

我必须经常更新我的 CSS 文件。我不想about:config在 Firefox 中更新文档频率设置。我想让它默认。

我使用 Firefox 作为理想的浏览器。如果我只是更新我的 CSS 文件,我必须清除 Firefox 的整个缓存。

我想从 Firefox 缓存中删除特定文件。这在 Firefox 中是否可行。我可以在 Firefox 中删除特定的 cookie。我不能从 Firefox 缓存中删除特定文件吗?

如果不可能,那么请告诉我如何制作我的 CSS 文件,以便始终检查(并且仅在修改后才加载)更新版本。在任何情况下,我都不想更改 Firefox 设置。

4

4 回答 4

3

如果我没记错的话,组合键 CTRL + F5 可以清除缓存,并且必须重新加载 css 文件。

于 2012-04-18T14:10:11.507 回答
1

使用ETag将是一个不错的选择。通过在 HTTP 响应中设置 Max-Age Header,您可以允许客户端在有限的时间内缓存资源。在那之后,客户端将向服务器发出有条件的 GET 请求。如果请求中的 ETag(存储在 If-None-Match 标头中)与服务器上的 ETag 不匹配,则将修改后的资源向下发送到客户端。否则,服务器会以 HTTP 304 Not Modified 响应,客户端可以再次缓存内容一段有限的时间。此方法可用于特定文件或目录。

于 2012-04-18T14:06:23.147 回答
1

将上次更新时间戳添加到链接文件。这就是它在 php 中的样子

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

这将导致浏览器仅在文件更新时重新加载文件。

于 2013-08-05T21:01:05.543 回答
1

这可以通过几行脚本(在浏览器控制台上运行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 文件的绝对 URL,就可以prompt("Enter the URL to kick out:")用 URL 替换。

改编自DoomEntry.js,确认也适用于最新的 Firefox (Quantum)。

于 2018-01-20T07:08:24.460 回答