【发布时间】:2020-08-03 22:20:57
【问题描述】:
我正在尝试为 .css 和 .js 等静态文件启用缓存。 我正在使用 Python 运行 WSGI 服务器。
我已尝试设置以下标头以进行缓存:
headers.add_header('Cache-control', f'public, max-age={expires.strftime(RFC_1123_DATE)}')
headers.add_header('Expires', expires.strftime(RFC_1123_DATE))
headers.add_header('Last-Modified', generate_last_modified())
在浏览器中收到的标头:
HTTP/1.0 200 OK
Date: Tue, 21 Apr 2020 08:06:17 GMT
Server: WSGIServer/0.2 CPython/3.6.9
Content-Encodings:
Content-Type: text/css; charset=UTF-8
Cache-control: public, max-age=Tue, 28 Apr 2020 08:06:17 GMT
Expires: Tue, 28 Apr 2020 08:06:17 GMT
Content-Length: 23399
Last-Modified: Tue, 21 Apr 2020 08:06:1587452777S GMT
Accept-Ranges: bytes
使用 Chrome 时,此代码可以正常工作,并且文件会按照您的预期从缓存中存储和检索。 Chrome 正在使用 Expires 标头并忽略 Cache-Control 标头。
我检查了我的开发者工具,禁用缓存没有启用。我在 about:config 中检查了我在 Firefox 中的设置,似乎启用了缓存。
那么我在这里错过了什么?我是否缺少标题,是否需要 ETAG,为什么 Expires 在 Chrome 中有效,但在 Firefox 中无效?
【问题讨论】:
标签: python http caching browser header