【问题标题】:Losing cache headers when serving images with Blobstore on Appengine using Java使用 Java 在 App Engine 上通过 Blob 存储提供图像时丢失缓存标头
【发布时间】:2014-04-18 20:40:32
【问题描述】:

根据documentation,我应该能够“在调用此 [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

任何想法我的标题去哪里了?

【问题讨论】:

    标签: java google-app-engine http-headers blobstore


    【解决方案1】:

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

    顺便说一句,if you want Google's edge cache to cache it,您必须设置 public 并且 max-age 少于 365 天。另外,Expires 似乎没有帮助。

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

    【讨论】:

      猜你喜欢
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 2021-07-30
      • 2011-02-22
      • 2011-07-23
      • 2013-06-18
      相关资源
      最近更新 更多