2014-03-13 43 views
0

根據documentation,我應該能夠「在調用此[serve]方法之前或之後附加自定義標頭。」使用Java在Appengine上使用Blobstore提供圖像時丟失緩存標頭

我服務我這樣的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 

在我的頭去任何想法?

回答

0

它對我來說只是你實現它的方式。嘗試在緩存控制上設置public

Btw,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 
+0

沒有骰子我害怕。 –

相關問題