禁用Chrome缓存进行网站开发

| 我正在修改网站的外观(修改CSS),但是由于烦人的持久性缓存,在Chrome上看不到结果。我尝试了Shift +刷新,但它不起作用。 如何临时禁用缓存或以可以看到更改的某种方式刷新页面?     
已邀请:
Chrome DevTools可以禁用缓存。 右键单击并选择ѭ0以打开DevTools。或使用以下键盘快捷键之一: F12 在Mac上为Command + Option + i Windows或Linux上的Control + Shift + i 单击工具栏上的ѭ1以打开网络窗格。 选中顶部的
Disable cache
复选框。 请记住,正如@ChromiumDev的一条推文所述,此设置仅在devtools打开时才有效。 请注意,这将导致重新加载所有资源。如果只希望对某些资源禁用缓存,则可以修改服务器与文件一起发送的HTTP标头。 如果您不想使用
Disable cache
复选框,则在打开DevTools的情况下长按刷新按钮将显示一个菜单,其中包含
Hard Reload
Empty Cache and Hard Reload
选项,效果类似。了解选项之间的区别。可以使用以下快捷方式: 在Mac上为Command + Option + R Windows或Linux上的Control + Shift + R     
当您需要每小时清除30次缓存时,清除缓存太烦人了。.因此我安装了一个名为Classic Cache Killer的Chrome扩展程序,该扩展程序可在每次页面加载时清除缓存。 Chrome商店链接(免费) (现在没有恶意软件!) 现在,我的模拟json,javascript,css,html和数据每次在每次页面加载时都会刷新。 我永远不必担心是否需要清除缓存。 我发现有大约20种适用于Chrome的缓存清理器,但是这种清理器看起来很轻巧,而且几乎不费力。在更新中,Cache Killer现在可以保持“始终在线”。 注意:我完全不了解插件作者。我只是觉得有用。     
按F12,然后(在控制台打开的情况下)拉起Chrome开发者控制台: 右键单击(或按住鼠标左键)在浏览器顶部的重新加载按钮上,然后选择“空缓存和硬重新加载”。 这将超出“硬重载”以完全清空缓存,确保通过javascript等下载的任何内容也将避免使用缓存。您不必担心设置或其他任何事情,这是一种快速的一键式解决方案。     
永久禁用Chrome中还有两个选项可以禁用页面缓存: 1.在注册表中停用Chrome缓存 打开注册表(开始->命令-> Regedit) 搜索:
HKEY_CLASSES_ROOT\\ChromeHTML\\shell\\open\\command
将... chrom.exe \“之后的部分更改为以下值:
–disable-application-cache –media-cache-size=1 –disk-cache-size=1 — \"%1\"
例如:
\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\" -disable-application-cache –media-cache-size=1 –disk-cache-size=1 — \"%1\"
重要: ... chrome.exe \后有一个空格和一个连字符 保留chrome.exe的路径 如果复制该行,请确保检查引号是否为实际引号。 2.通过更改快捷方式属性来停用Chrome缓存 右键单击Chrome图标,然后在上下文菜单中选择\“属性\”。 在路径中添加以下值:
–disk-cache-size=1
例:
\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\" –disk-cache-size=1
重要: ... chrome.exe \后有一个空格和一个连字符 保留chrome.exe的路径     
如果您不想编辑Chrome的设置,则可以使用隐身模式来获得相同的结果。     
除了禁用缓存选项(可通过开发人员工具窗口右下角的按钮-工具|开发人员工具,或Ctrl + Shift + I进入)之外,在开发人员工具的网络窗格中,您还可以现在,右键单击并从弹出菜单中选择\“ Clear Cache \”。     
F12打开Chrome DevTools F1打开DevTools设置 选中禁用缓存(打开DevTools时),如下所示: 当前位于“首选项”选项卡上,这是默认选项。您可能需要向下滚动。自问这个问题以来,此复选框已移动了至少两次。最后我检查了一下,它在底部的中间列中。如果您在较薄的屏幕上打开它,并且“首选项”下有两列,则该列可能位于右上角附近。如有任何更改或评论,请随时更新。我将更新该帖子。     
而不是点击\“ F5 \” 刚刚击中:   \“ Ctrl + F5 \”     
在Canary频道中(也许会紧随开发者和稳定频道),这是“ General”部分下左侧的第二个总体选择。 除此之外,始终可以通过Ctrl + Shift + N切换到隐身模式。尽管很遗憾,这也结束了会话。     
使用Ctrl + Shift + R刷新很不错,但没有得到我需要的一切。 仍然有些事情不会刷新,例如存储在js和CSS中的数据。 找到了解决方案:适用于chrome web开发人员的google工具栏。安装工具栏后,选择选项和“重置页面”。     
需要明确的是,Chrome的“禁用缓存”复选框(此处是v17,但我相信是v15)不在主要设置UI中。它位于开发人员工具设置UI中。 在浏览器窗口的扳手图标菜单(偏好菜单)中,选择工具→开发者工具 在出现的开发者工具用户界面中,点击右下角的齿轮图标。 选中“网络”部分中的“禁用缓存”复选框。     
仅当您打开开发工具时,才能在Chrome中禁用缓存     
在修复该错误之前,您可以使用Clear Cache Chrome插件,也可以为其设置键盘快捷键。 安装后,右键单击并转到选项: 检查
Automatically reload active tab after clearing data
: 选择
Everything
作为时间段: 然后,您可以转到菜单=>工具=>扩展程序: 单击底部的键盘快捷键: 并设置键盘快捷键,例如Ctrl + Shift + R:     
实际上,如果您不介意使用带宽,出于多种原因,禁用缓存会更安全,这是许多安全站点建议的。 Chromium不应过于傲慢地做出决定并强制对用户进行设置。 您可以使用--disk-cache-dir = / dev / null在UNIX上禁用高速缓存。 因为这是意料之外的崩溃,但如果发生崩溃,那显然会指出更严重的错误,无论如何都应该修复。     
这可能会帮助某人。 我已将Nginx装配用于疯狂缓存。因此,在网络工具中禁用缓存并明确清除缓存是行不通的。 一个非常简单但无聊的解决方法是,我只是打开一个新的隐身标签。令人惊讶的是,它一直都在工作! 每当我希望以相同模式重新加载时,在隐身模式下进行硬刷新都可以解决问题。     
如何更改页面名称以防止页面缓存的小书签呢?在Chrome浏览器中,您将创建一个新书签,然后将代码粘贴到URL中。单击书签,页面将重新加载时间戳以阻止缓存。
javascript:(function(){var idx = location.href.indexOf(\'?\');var d = new Date();var str = location.href.substr(0,idx) + \'?version=\' + d.getTime();location.href=str; void 0;})();
    
我只是被赶上了,但不一定是因为Chrome。 我正在使用jQuery发出AJAX请求。我在请求中将cache属性设置为true:
   $.ajax({
        type: \'GET\',
        cache: true,
        ....
将其设置为false可解决我的问题,但这并不理想。 我不知道这些数据保存在哪里,但我确实知道chrome从未在服务器上发出过请求。     
现在有一种更好,更快捷的方法(Chrome版本59.x.x): 右键单击重新加载图标(URL字段的左侧),您将获得一个下拉菜单,然后选择第三个选项:“空缓存和硬重新加载”。 仅当开发人员工具打开时,此选项才可用。 (注意与选项2的区别:\'Hard reload \'-cmd-shift-R)。这里没有缓存清空!     
Chrome浏览器网上商店中有一个Chrome扩展名叫Clear Cache。 我每天都使用它,并且它是我认为非常有用的工具。您可以将其用作重新加载按钮,并且可以清除缓存,如果您还喜欢Cookie,语言环境存储,表单数据等,也可以定义。因此,只需在您选择的域上仅需按一下重新加载按钮即可清除所有这些内容。 非常非常棒! 您还可以在选项中为此定义键盘快捷键! 另一种方法是以隐身模式启动Chrome窗口。 在这里,缓存也应完全禁用。     
我的第3个Chrome扩展页面大小检查器提供了另一个禁用缓存的选项,该选项与Devtools完全相同地禁用缓存。 此外,该扩展程序还可以方便地快速报告页面大小,缓存使用情况,网络请求和网页的加载时间。加上在Github的开源。     
不确定您使用的是什么,但是如果您使用的是ASP.Net,则可以执行以下操作,就像超级按钮一样:
<link href=\"@Url.Content(\"~/Content/Site.css\")?time=@DateTime.Now\" rel=\"stylesheet\" />
基本上,它将在每次运行时自动将日期和时间附加到文件的末尾,这意味着由于文件名在技术上有所不同,因此您不必担心会再次被缓存。     
我有同样的问题,我尝试过: 控制Shift R, 禁用F12中的缓存 控制F5。 然后,我发现不建议将.appcache清单用于非https站点。 我在html标记中删除了site.appcache文件及其引用,现在我看到的是每个页面的最新版本!     
如果您使用的是ServiceWorkers(例如:对于渐进式Web应用程序),则可能还需要在开发工具中的“应用程序”>“ Service Workers”下选中“重新加载更新”。     
从版本50开始(如果我没记错的话),“禁用缓存”选项已从Devtool设置中删除。转到“网络”标签,然后有“禁用缓存”选项。     
嘿,如果您的网站使用的是PHP,则在HTML页面的开头放置以下PHP小片段:
   //dev versioning - stop caching
   $rand = rand(1, 99999999);
现在,到处都可以在脚本或链接元素中加载CSS-或JS-文件之类的资源,然后通过PHP将\'?\'附加到URI之后,将生成的随机值附加到请求URL:
    echo $rand;
而已!无论哪种浏览器,都不会再有缓存您站点的浏览器。 当然,在发布之前删除代码,或将$ rand设置为空字符串即可再次进行缓存。     
我使用了上述其他选项,但我发现最好的方法是将以下参数添加到chrome.exe的启动中。 \“ C:\\ Program Files(x86)\\ Google \\ Chrome \\ Application \\ chrome.exe \” --disk-cache-size = 1 -media-cache = 1 我发现不禁用媒体缓存是个好主意,但这是出于完整性考虑。 实际上,我想要一个选项来完全禁用缓存,将内存用于IO而不是磁盘(这也会使加载时间快10倍!),但是我不认为chrome或任何与此相关的浏览器都具有该选项然而。     
  如何临时禁用缓存或以可以看到更改的某种方式刷新页面? 尚不清楚您指的是哪个“缓存”。浏览器可以通过几种不同的方法持久地缓存内容。 Web存储就是其中之一,“ 18”是另一个。 某些浏览器还带有一个ѭ19,与Service Worker一起使用,以创建提供脱机支持的渐进式Web应用程序(PWA)。 清除PWA的缓存
self.caches.keys().then(keys => { keys.forEach(key => console.log(key)) })
列出缓存键的名称,然后运行:
self.caches.delete(\'my-site-cache\')
按名称(即“ѭ22”)删除缓存键。然后刷新页面。 如果刷新后在控制台中看到任何与工作人员相关的错误,则可能还需要注销注册的工作人员:
navigator.serviceWorker.getRegistrations()
  .then(registrations => {
    registrations.forEach(registration => {
      registration.unregister()
    }) 
  })
    
到目前为止,Chrome \的Cache Killer是最佳选择。由于安装URL的商店URL已关闭,因此您可以在此处下载CRX文件: https://www.crx4chrome.com/extensions/jpfbieopdmepaolggioebjmedmclkbap/ 下载扩展文件后,打开Chrome->更多工具->扩展,然后将CRX文件从文件资源管理器或桌面(取决于下载文件的位置)拖到chrome窗口中以安装扩展。     
我当时处于浏览器从磁盘加载缓存数据的情况,即使我检查它是否禁用了缓存(我正在使用Chrome)。我所有的CSS和JS都是从服务器加载的,而不是从网页加载的。这在我的本地和生产中都在发生。 要修复它,我需要在URL中添加一个额外的参数,以强制浏览器从服务器获取网页,即使控制器不需要它。 我正在使用ASP.Net,所以这是我的示例
//Controller function
public ActionResult Index()
    {
        return View();
    }
//Link
@Html.Action(\"Index\", \"Home\", new { ts = DateTime.Now.Ticks.ToString()})
结果是,它将生成一个类似于以下内容的链接: http://www.myweb.com/Home/Index?ts=636558555408282209 这是我的情况和解决方案。希望它可以帮助某人。     
我使用(在Windows中),按Ctrl + Shift +删除,然后在Chrome对话框出现时,按Enter键。可以配置每次执行此序列时需要清除的内容。无需开发。在这种情况下打开工具。     

要回复问题请先登录注册