我一直试图找出我可以在哪里设置我的网站,我的网站,我托管的GAE,但我找不到他们的文档的信息,谷歌也没有任何结果。我读过很多关于缓存的文章,但我找到的所有结果或代码示例都在使用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>我收到大量错误,说我需要将everything包含在我的静态文件列表中,如- WARNING: Can not serve /paypal_button.svg directly. You need to include it in <static-files> in your appengine-web.xml.
编辑:这里是curl -v日志-
< 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的东西
发布于 2016-01-14 03:22:19
好吧,在经历了很多烦恼之后,我才能让它正常工作。基本上,在appengine-web.xml中,一旦您将、one作为<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-头看起来都是正确的。只需确保包含您在网站上的每一个文件类型/文件,否则它将不会加载该资源。
干杯。
https://stackoverflow.com/questions/34760329
复制相似问题