我正在修改网站的外观(CSS修改),但由于烦人的持久缓存,无法在Chrome上看到结果。我尝试了Shift+刷新,但不起作用。
如何临时禁用缓存或以某种方式刷新页面以查看更改?
我正在修改网站的外观(CSS修改),但由于烦人的持久缓存,无法在Chrome上看到结果。我尝试了Shift+刷新,但不起作用。
如何临时禁用缓存或以某种方式刷新页面以查看更改?
当前回答
Chrome的缓存杀手是目前最好的选择。由于安装缓存杀手的商店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
这是我的处境和解决方案。希望它能帮助一些人。
我的第三个Chrome扩展页面大小检查器提供了另一个禁用缓存的选项,它与Devtools完全相同地禁用缓存。
此外,该扩展可以以方便的方式快速报告网页大小、缓存使用情况、网络请求和加载时间。加上Github的开源。
将这串代码添加到您的中,它应该会成功。
<meta name="robots" content="noarchive">
我使用(在窗口中)ctrl+shift+delete,当铬对话框出现时,按enter键。这可以配置为每次执行此序列时需要清除的内容。在这种情况下,不需要打开dev.tools。
当问到这个问题时,Chrome不支持禁用缓存功能。但现在,您可以在Chrome开发工具的网络选项卡中找到“禁用缓存”功能。
禁用缓存的网络选项卡
您可以看到,所有资源(我已经过滤了JS资源)都是从网络中获取的,而不是从磁盘/内存缓存中加载的。
未选择禁用缓存
您可以看到,当我刷新页面但没有选择“禁用缓存”功能时,几乎所有资源都是从缓存加载的。
这对于本地web开发很好,但我想强调一些限制。如果到目前为止讨论的解决方案符合您的用例,您可以停止阅读这里的内容。
局限性
您必须保持DevTools打开并禁用缓存当您禁用缓存时,该选项卡中的所有资源都将禁用缓存。如果您只想禁用1-2个资源的缓存,则会使速度变慢,效率低下
使用Requestly Chrome扩展禁用特定资源(JS/CSS/Images等)的缓存
最近,我偶然发现https://dev.to/requestlyio/disable-caching-of-particular-js-css-file-2k82这帮助我理解了如何禁用特定资源的缓存。
这里的技巧是在每次发出请求时向资源添加一个随机值的查询参数。使用Requestly Query Param Rule,可以添加如下参数
URL Contains mywebsite.com/myresource.js
Add param cb rq_rand(4)
当发出请求时,rq_rand(4)被4位随机数替换。
请求查询参数规则以添加随机参数
添加规则后,不缓存JS/CSS文件
在这里,您可以看到“禁用缓存”没有被选中,并且由于URL中的随机参数(cb-将其作为缓存破坏器读取),资源仍然没有从缓存加载。
好的是,您不需要为实现这种行为而保持开发工具的开放性您可以将其永久打开,您的浏览体验也不会受到影响。
如何获取规则
这是一个链接,如果您已安装Requestly,则可以使用该链接浏览和下载规则-https://app.requestly.io/rules/#sharedList/1600501411585-禁用缓存堆栈流
免责声明:我构建了Requestly,但我认为这可能对很多web开发人员有帮助,因此在这里分享。