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

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


当前回答

我的第三个Chrome扩展页面大小检查器提供了另一个禁用缓存的选项,它与Devtools完全相同地禁用缓存。

此外,该扩展可以以方便的方式快速报告网页大小、缓存使用情况、网络请求和加载时间。加上Github的开源。

其他回答

F12打开Chrome DevToolsF1打开DevTools设置选中禁用缓存(当DevTools打开时),如下所示:

这当前位于默认的“首选项”选项卡上。您可能需要向下滚动。自提出此问题以来,此复选框已至少移动了几次。我最后一次检查时,它在底部的中间列中。如果在较薄的屏幕上打开它,并且“首选项”下有两列,则它可能位于右上角附近。如果有任何更改或评论,请随时更新此帖子,我将更新此帖子。

Chrome的缓存杀手是目前最好的选择。由于安装缓存杀手的商店URL已关闭,您可以在此处下载CRX文件:

https://www.crx4chrome.com/extensions/jpfbieopdmepaolggioebjmedmclkbap/

下载扩展文件后,打开Chrome->更多工具->扩展,然后将CRX文件从文件浏览器或桌面(取决于下载文件的位置)拖到Chrome窗口中安装扩展。

在修复错误之前,您可以使用Clear Cache Chrome插件,也可以为其设置键盘快捷方式。

安装后,右键单击并转到选项:

选中清除数据后自动重新加载活动选项卡:

选择时间段的所有内容:

然后,您可以转到菜单=>工具=>扩展:

单击底部的键盘快捷键:

并设置键盘快捷键,例如Ctrl+Shift+R:

一般来说,“烦人”的缓存的问题在于框架:)。让我们来看看细节。大多数框架都在.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),因为-正如我之前提到的-这不是提供的)。

希望这有助于节省时间。

嘿,如果您的网站使用的是PHP,那么请在html页面的开头放置以下PHP代码片段:

   //dev versioning - stop caching
   $rand = rand(1, 99999999);

现在,在脚本或链接元素中加载CSS或JS文件等资源的任何地方,都会在附加“?”后将生成的随机值附加到请求URL通过PHP连接到URI:

    echo $rand;

就是这样!无论哪种浏览器,都不会再缓存您的网站。

当然,在发布之前删除代码,或者简单地将$rand设置为空字符串以允许再次缓存。