我正在修改网站的外观(CSS修改),但由于烦人的持久缓存,无法在Chrome上看到结果。我尝试了Shift+刷新,但不起作用。

如何临时禁用缓存或以某种方式刷新页面以查看更改?


当前回答

我已经使用了上面描述的其他选项,但我发现最好的方法是在chrome.exe的启动中添加以下参数。

“C:\Program Files(x86)\Google\Chrome\Application\Chrome.exe”--磁盘缓存大小=1-媒体缓存=1

我发现不禁用媒体缓存是一个好主意,但出于完整性的考虑。

实际上,我想要一个完全禁用缓存的选项,将内存用于IO而不是磁盘(这也会使加载时间快10倍!),但我认为chrome或任何浏览器都还没有这个选项。

其他回答

一般来说,“烦人”的缓存的问题在于框架:)。让我们来看看细节。大多数框架都在.htaccess(os equivalent)中使用去主动重定向所有请求到框架“索引”,

但它同时排除应用程序直接请求的文件和目录。

(例如,对于.htaccess,典型指令如下:

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

)

因此,作为图形文件的所有.js、.css文件都不由框架“索引”处理。

这些文件通常在开发期间最常更改。

这就是为什么缓存控件取消激活不应该放在框架“索引”中的原因。

它应该放在.htaccess中。

F.e.用于开发过程:

  Header set Cache-Control "no-store, no-cache, must-revalidate"
  Header set Pragma "no-cache"

(或者对于连续的工作版本,请使用“Etag”指令-在HTTP参考中查看更多信息。注意,Etag不是用于开发的。

在.htaccess中,没有直接的方法生成用于ETag的随机数(或快速变化的序列,如日期UTC),因为-正如我之前提到的-这不是提供的)。

希望这有助于节省时间。

chrome web商店中有一个名为Clear Cache的chrome扩展。

我每天都使用它,我认为它是一个非常有用的工具。您可以将其用作重新加载按钮,并可以清除缓存,如果您还喜欢cookie、区域设置存储、表单数据等,还可以定义在哪个域上发生这种情况。因此,只需在您选择的域上按下重新加载按钮,就可以清除所有这些垃圾。

非常好!

您也可以在选项中为此定义键盘快捷键!

另一种方法是在隐姓埋名模式下启动铬窗口。在这里,缓存也应该被完全禁用。

我遇到了同样的问题,我试着:

控制换档R,禁用F12中的缓存控制F5。

然后我发现,对非https站点使用.appcache清单是不可取的。我删除了我的site.appcache文件及其在html标记中的引用,现在我看到了每个页面的最新版本!

使用Ctrl+Shift+R进行刷新很好,但并没有得到所需的一切。还有一些东西不会刷新,比如存储在js和css中的数据。找到了一个解决方案:谷歌为chromeweb开发人员提供的工具栏。安装工具栏后,选择选项并“重置页面”。

不确定您正在使用什么,但如果您正在使用ASP.Net,您可以执行以下操作,这就像一个魅力:

<link href="@Url.Content("~/Content/Site.css")?time=@DateTime.Now" rel="stylesheet" />

基本上,每次运行文件时,它都会自动将日期和时间附加到文件的末尾,这意味着由于文件名在技术上不同,因此您再也不用担心它会被缓存。