Проблемы с кешем в HTML5 - PullRequest
2 голосов
/ 12 января 2010

Я пытаюсь кэшировать (для автономного использования) некоторые части моего веб-приложения, но всякий раз, когда я кеширую css-файлы или js-файлы, они оказываются пустыми при загрузке из кеша (проверено как в Safari, так и в Firefox)

Что может вызвать эту проблему? Я убедился, что файл манифеста работает правильно, и я пробовал как с относительными, так и с абсолютными путями, включая домен страницы.

Если я исключаю все скрипты и CSS-файлы, они загружаются очень хорошо, но как только я помещаю их в автономный кеш, они загружаются как пустые файлы.

Другие автономные приложения работают нормально на платформах, на которых я это тестировал, поэтому проблема с моей настройкой должна быть. Страницы обслуживаются сервером Apache, работающим на Linux, если это как-то влияет на вещи.

Заголовок запроса на css-файл:

Date    Tue, 12 Jan 2010 11:06:41 GMT
Server  Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.4 with Suhosin-Patch
Last-Modified   Thu, 15 Oct 2009 11:53:16 GMT
Etag    "36625c-1da0-475f7ecbca300"
Accept-Ranges   bytes
Content-Length  7584
Content-Type    text/css

Конечно, без автономного кэша.

1 Ответ

0 голосов
/ 12 января 2010

Разместите ваши заголовки ответа для файла CSS. Наиболее вероятной причиной является истечение срока действия файлов.

Кажется немного странным иметь Etag, но не заголовок Expires или control-cache. Это может сбить с толку автономный кеш. Попробуйте явно установить правило истечения срока действия документа в конфигурации вашего сервера, ExpiresDefault for Apache.

Правила для Etag гласят, что если Etag соответствует последующему запросу, сервер (в данном случае ваш автономный кеш) должен отправить 304 (использовать то, что у вас уже есть) и НЕТ ДАННЫХ. Однако, если документ не находится в кэше NORMAL браузера и вы не в сети, восстановить исходный документ некуда.

...