使用BottlePy/GAE进行浏览器缓存

2 投票
1 回答
922 浏览
提问于 2025-04-16 16:55

我在我的网站上运行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 直接提供静态文件。

撰写回答