Задать вопрос
faiwer
@faiwer
frontend-developer

Почему Chrome принудительно кеширует appcache-manifest?

Разрабатываю single page application. Использую Application Cache. Много проблем хапнул я с ним, и, как обычно, все трудновыявимые или трудноисправимые. На данный момент столкнулся с тем, что Chromium, открыв HTML-страницу, с прописанным appcache-manifest-ом, сохраняет и сам manifest в этот Application Cache.

Заголовок HTTP-ответа на запрос к manifest-файлу: "Cache-Control:no-cache, no-store, max-age=0, must-revalidate, proxy-revalidate". Помимо этого также пробовал "Cache-Control: no-cache". Если загружать manifest-файл при пустом appcache-cache-е, то механизм кеширования работает штатно. На каждый запрос к manifest-у я получаю ответ 200 (не 304). Сам файл грузится не из кеша. Консоль соответственно тоже пустая. Всё штатно.

Но стоит мне загрузить HTML-страницу, в которой указан этот manifest, как начинаются чудеса. Chrome логирует "Creating Application Cache", и подгружает 1 за одним все прописанные ресурсы (без файла manifest-а). Application Cache работает штатно и при повторной загрузке HTML страницы все файлы грузятся из кеша "Document was loaded from Application Cache with manifest".

Но вот, что печально. И сам manifest файл тоже грузится из кеша. Можно открыть его в отдельной вкладке. Теперь, после создания appcache-а, я получаю "Status Code:200 OK (from cache)". Консоль выводит "Document was loaded from Application Cache with manifest portalout.dev/portal.appcache". Т.е. она этот самый manifest грузит, используя по нему же сформированный кеш. Заголовок кешированного файла всё тот же: "Cache-Control:no-cache, no-store, max-age=0, must-revalidate, proxy-revalidate". Hard reset не помогает. Но, правда, помогает галочка "Disable cache" или снос application cache на служебной странице.

Пара моментов:
  1. Пока не могу уверенно сказать точно, но, кажется, в Firefox такого поведения не наблюдается
  2. В manifest файле сам этот manifest не прописан (manifest).
  3. Среди заголовков ответа к запросу к manifest-у есть: "Content-Type:text/cache.manifest"


В чём может быть дело? Proxy сервера при этом не использую.
  • Вопрос задан
  • 733 просмотра
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы