【发布时间】:2014-08-31 14:51:27
【问题描述】:
我有一个带有 Python Bottle 的应用程序,我想在静态文件中添加 Cache-Control。我是新手,如果我做错了什么,请原谅我。
这是函数以及我如何提供静态文件:
@bottle.get('/static/js/<filename:re:.*\.js>')
def javascripts(filename):
return bottle.static_file(filename, root='./static/js/')
为了添加 Cache-Control,我又添加了一行(我在教程中看到过)
@bottle.get('/static/js/<filename:re:.*\.js>')
def javascripts(filename):
bottle.response.headers['Cache-Control'] = 'public, max-age=604800'
return bottle.static_file(filename, root='./static/js/')
但是当我在 Chrome 上检查开发者工具的标题时:我有 Cache-Control:max-age=0 或 Cache-Control:no-cache
【问题讨论】:
-
尝试使用
response.set_header()而不是response.headers,正如他们在docs 中所说的那样。像这样response.set_header('Cache-Control', 'max-age=3600,public') -
@doru 我已经尝试过了,但是在 Chrome 开发者工具的网络选项卡中我有同样的东西(缓存控制:max-age=0)。每个静态文件似乎都会在每次刷新时加载
-
请尝试使用
wget或curl而不是Chrome,让我们知道您看到了什么。 -
@ron.rothman 我没有 wget 也没有卷曲。我通过 Python 和 urllib2 发出了 Headers 请求,结果如下:
{'date': 'Fri, 11 Jul 2014 22:39:58 GMT', 'content-length': '30458', 'content-type': 'text/html; charset=UTF-8', 'server': 'WSGIServer/0.1 Python/2.7.6'} -
您是否注意到您的回复中没有
Cache-control标头?