我已经在我的网络服务器上为图像等静态文件实现了缓存。我尝试设置响应标头,例如:
Cache-Control: public, max-age=864000
Expires: Mon, 21 Aug 2018 14:00:00 GMT
这至少会将文件缓存一天。但是使用开发人员工具,我可以看到请求仍在获取而无需缓存。
浏览器似乎发送请求标头,例如:
Cache-Control: no-cache
即使我从我的网络服务器明确指示它不要这样做。
在大多数浏览器中,当您打开开发人员工具时,浏览器实际上会在请求中发送Cache-Control: no-cache
作为所谓的"有用功能",因为您可能正在调试。
默认情况下,此功能处于启用状态。在FireFox中,此功能可以在设置菜单中的"高级设置"下方找到(使用齿轮图标(,如下所示:禁用HTTP缓存(当工具箱打开时(
取消选中该功能,缓存应该可以工作。
当您使用Visual Studio(例如 ASP.net MVC(开发 Web 应用程序并使用 Chrome 运行应用程序时,Chrome将始终发送标头Cache-Control: no-cache
。不管你是否Disable HTTP Cache
.关闭Developer Tools
也无济于事。
帮助:使用其他浏览器进行调试或启动新的 Chrome 实例。