У меня проблема с кешированием. Chrome не всегда загружает более новые версии активов сайта, чаще всего файлы Javascript, загруженные Require.js. Прямо сейчас у меня эта проблема более 24 часов с конкретным файлом.Почему хром не запрашивает более позднюю версию кэшированного файла?
Если я загружаю страницу с открытой вкладкой devtools (сетевая вкладка), файлы-нарушители обычно показывают ответ HTTP 200, но в столбце «Размер» отображается «(из кеша)». В деталях заголовков отображается «Предварительные заголовки показаны». Wireshark показывает, что файл на самом деле не запрашивается с сервера.
Хром показывает дату последней модификации файла как сб, 06 дек. 2014 01:27:55 GMT, но мой необработанный запрос на сервер явно указывает, что файл изменился совсем недавно.
Если я необработанного запрос себя я не вижу ничего в заголовках, возвращенных сервером, который должен вызвать эту проблему:
GET /js/path/to/file.js HTTP/1.1
Host: static.mydomain.com
User-Agent: Matt
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Vary: Accept-Encoding
Content-Type: application/javascript
Accept-Ranges: bytes
ETag: "4203477418"
Last-Modified: Fri, 16 Jan 2015 18:28:30 GMT
Content-Length: 5704
Date: Fri, 16 Jan 2015 21:05:06 GMT
Server: lighttpd/1.4.33
.... data here ...
Вопрос был сообщенный хромированными пользователей на нескольких операционных систем с различными версии хром, но я обычно не получаю сообщения о проблемах кеширования в других браузерах. (Прямо сейчас я нахожусь на "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/39.0.2171.71 Safari/537,36")
Edit: Проблема, кажется, самое обидное с файлами, загруженными Require.js, хотя я столкнулся с ним с javascript, который напрямую ссылается на эту страницу.
Что мне здесь не хватает? Почему хром не проверяет новую версию файла?