如何使用Java使用GAE设置Web缓存设置?

时间:2016-01-13 07:03:18

标签: google-app-engine caching

我一直试图找出我可以为我的网站设置缓存设置的位置我在GAE上托管,但我无法在其文档中找到相关信息,Google也没有提供任何信息结果。我已经阅读了很多关于缓存的内容,但我找到的所有结果或代码示例都使用的是Apache。

任何文档链接?或者只是我实际写入缓存设置的一般信息?也许在appengine-web.xml的某个地方?

感谢。任何信息/文档都将不胜感激。

编辑:我在appengine-web.xml尝试了类似的内容,但在使用Chrome开发工具进行测试时,似乎并没有实际缓存任何内容 -

<static-files>
    <include path="/**.png" expiration="7d" />
    <include path="/**.jpg" expiration="7d" />
    <include path="/**.ico" expiration="7d" />
    <include path="/**.js" expiration="7d" />
    <include path="/**.svg" expiration="7d" />
    <include path="/**.ttf" expiration="7d" />
    <include path="/**.woff" expiration="7d" />
    <include path="/**.css" />
</static-files>

此外,只要我添加一个这样的静态文件:

<static-files>
    <include path="/img/top_img.jpg" expiration="4d 5h" />
</static-files>

我收到大量错误,说我需要在我的静态文件列表中包含所有内容,例如WARNING: Can not serve /paypal_button.svg directly. You need to include it in <static-files> in your appengine-web.xml.

编辑:这是curl -v log -

< HTTP/1.1 200 OK
< Content-Length: 61009
< Content-Type: text/html
< Last-Modified: Wed, 13 Jan 2016 06:19:21 GMT
< Cache-Control: public, max-age=600
< Server: Development/1.0
< Date: Wed, 13 Jan 2016 07:33:39 GMT

因此启用了缓存..但我无法弄清楚如何使用GAE更改单个静态文件的到期日期。

当我使用以下代码在prod服务器上测试时,

编辑

<static-files>
    <include path="/**.png" expiration="999d" />
</static-files>

我的资源都没有加载,我收到了这些错误:

Failed to load resource: the server responded with a status of 404 (Not Found)

关于不是.png

的所有事情

1 个答案:

答案 0 :(得分:1)

好吧,经过很多烦恼之后我才能让它正常工作。基本上appengine-web.xml只要您将一个的内容列为<static-file>,就必须列出您拥有的每个文件类型,否则它就不会知道如果它是静态的。所以我能够做到这一点 -

<static-files>
    <include path="/**.png" expiration="365d" />
    <include path="/**.svg" expiration="365d" />
    <include path="/**.jpg" expiration="365d" />
    <include path="/**.zip" expiration="365d" />
    <include path="/**.pdf" expiration="365d" />
    <include path="/**.hex" expiration="365d" />
    <include path="/**.js" expiration="365d" />
    <include path="/**.js.map" expiration="365d" />
    <include path="/**.ttf" expiration="365d" />
    <include path="/**.gif" expiration="365d" />
    <include path="/**.woff" expiration="365d" />
    <include path="/**.css" expiration="365d" />
    <include path="/**.html" expiration="1d"/>
</static-files>

现在所有的http-header看起来都是正确的。请确保在您的网站上包含每个文件类型/文件,否则它将无法加载该资源。

干杯。