使用BottlePy/GAE进行浏览器缓存
我在我的网站上运行Google Page Speed,这个网站是用Python和Bottle框架在Google App Engine上搭建的。
它提示我:“以下可缓存的资源新鲜度时间太短。请为以下资源指定一个至少在未来一周的过期时间。”
然后它列出了我大部分的静态文件(比如图片、CSS、JS),并建议我设置缓存时间超过一周。
在我的app.yaml文件里,我设置了这个:default_expiration: "21d 1h",但似乎没有起作用。
有没有人知道我该如何缓存这些文件,或者这是不是使用Bottle在App Engine上时遇到的问题?
1 个回答
3
如果你的代码里有这个:
@bottle.route('/static/:filename#.*#')
def static(filename):
return bottle.static_file(filename, root='./static/')
你可以在前面加上:
response.headers['Cache-Control'] = 'public, max-age=SECONDS'
这样可以让浏览器缓存内容。这个方法也适用于动态生成的页面,只要你不使用 cookies 或 GET 参数。
不过,如果可以的话,最好让 GAE 直接提供静态文件。