我一直在努力解决一个问题,我似乎无法让Firefox从其本地缓存中提供静态内容。无论我尝试什么,我总是得到304 Not Modified,它仍然会检查服务器。
我发出了很多请求,所以只检查资源是否未被修改的连接导致性能下降。
以下是我通过回复发送的标题:
正如您所看到的,我将最大年龄设置得相当远,而且我也将当前日期的两个月设置到期。
我是通过Jetty中的Servlet过滤器完成的。我唯一能想到的是Last-Modified标头导致Firefox检查服务器并忽略其他标头。但是,最后一次修改是在jetty内部的某处添加的,我无法删除它。
以下是我在我的过滤器中使用的代码的代码(暂时尝试使用css):
if(requestURI.endsWith(".css")){
Calendar inTwoMonths = Calendar.getInstance();
inTwoMonths.add(Calendar.MONTH, 2);
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
httpServletResponse.setDateHeader("Date", new Date().getTime());
httpServletResponse.setHeader("Pragma", "public");
httpServletResponse.setDateHeader("Expires", inTwoMonths.getTimeInMillis());
httpServletResponse.setHeader("Cache-control", "max-age=36000, public");
}
filterChain.doFilter(request, response);
非常感谢任何建议。