繁体   English   中英

使用Java在Appengine上的Blobstore提供图片时丢失缓存标头

[英]Losing cache headers when serving images with Blobstore on Appengine using Java

根据文档 ,我应该能够“在调用此[serve]方法之前或之后添加自定义标头”。

我这样服务我的blobstore jpeg。

import com.google.appengine.api.blobstore.BlobstoreService;

class MyServlet extends javax.servlet.http.HttpServlet {
  @Override
  public void doAction(...) {
    ...
    response.setHeader("Cache-Control", "max-age=100000000000");
    response.setDateHeader("Expires", System.currentTimeMillis() + 100000000000);
    blobstoreService.serve(myBlobKey, response);
  }
}

然后,当我curl -i http://url-serving-my-blob-here我得到了正确的图像,但是有以下标题:

cache-control:no-cache, must-revalidate
expires:Fri, 01 Jan 1990 00:00:00 GMT

有我的标头去哪儿的想法?

它对我来说就像您实施它的方式一样。 尝试在缓存控件上设置public

顺便说一句, 如果您想让Google的边缘缓存对其进行缓存 ,则必须将其设置为public ,并且max-age期限应少于365天。 另外, Expires似乎无济于事。

setHeader("Cache-Control", "public, max-age="+300*24*60*60);  // 300 days

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM