Я пытаюсь включить кэширование для файлов * stati c, таких как. css и. js. Я использую сервер WSGI с Python.
. Я попытался установить следующие заголовки для целей кэширования:
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 .
Я проверил свои инструменты разработчика и Отключить кэш не включен. Я проверил свои настройки в Firefox в about: config, похоже, что кеширование включено.
Так чего мне здесь не хватает? Мне не хватает заголовка, требуется ли ETAG, почему Expires работает в Chrome, а не в Firefox?