我一直试图找出我可以为我的网站设置缓存设置的位置我在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
答案 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看起来都是正确的。请确保在您的网站上包含每个文件类型/文件,否则它将无法加载该资源。
干杯。