我已经在Web服务器上实现了对静态文件(如图像)的缓存。我尝试设置响应标头,例如:
Cache-Control: public, max-age=864000
Expires: Mon, 21 Aug 2018 14:00:00 GMT
这至少将文件缓存一天。但是使用开发人员工具,我可以看到仍在获取请求而不进行缓存。
浏览器似乎发送请求标头,例如:
Cache-Control: no-cache
即使我从Web服务器明确指示不要这样做。
答案 0 :(得分:1)
在大多数浏览器中,打开开发人员工具后,浏览器实际上会在请求中发送Cache-Control: no-cache
作为所谓的“有用功能”,因为您可能正在调试。
默认情况下启用此功能。在FireFox中,此功能可以在设置菜单(使用齿轮图标)的“高级设置”下面列出,其显示方式为:禁用HTTP缓存(打开工具箱时)
取消选中该功能,缓存应该可以正常工作。
答案 1 :(得分:0)
在使用 Visual Studio (例如ASP.net MVC)开发Web应用程序并使用 Chrome 来运行应用程序时,Chrome会始终< / strong>发送标头 private int counter = 0; // global var
private int random = 0; // global var
final Handler handler = new Handler();
handler.post(r);
final Runnable r = new Runnable() {
public void run() {
//generate random number and do you work
random = (int)(Math.random() * 50 + 1);
counter++;
// call Runnable again after 1 sec if counter <= 3000 (50 min)
if (counter <= 3000){ // 3000 = 50min
handler.postDelayed(this, 1000); // 1000 = 1 sec
}
}
};
。无论您是否Cache-Control: no-cache
。另外,关闭Disable HTTP Cache
也无济于事。
有什么帮助:使用其他浏览器进行调试或启动Chrome的新实例。