Автономный режим не работает в мобильном Safari с манифестом кеша

Работаю над мобильным сайтом для iphone. Я добавил манифест кеша и загрузил в него список ресурсов, необходимых для работы в автономном режиме. Файл манифеста имеет правильный тип содержимого. Если вы просматриваете заголовок ответа для файла, тип содержимого - text / cache-manifest. Файл манифеста находится здесь:

http://hoodisgood.clientsit.es/cache.manifest

Сайт доступен для просмотра здесь (вам нужно будет посмотреть на своем iphone (или симуляторе) или в Safari с пользовательским агентом, установленным на iphone.

http://hoodisgood.clientsit.es/

После просмотра сайта и добавления его в закладки на главном экране я установил свой iphone в режим полета, и когда я пытаюсь просмотреть сайт, я не могу. Я получаю предупреждение о том, что он не может открыться, потому что не подключен к Интернету. Я указал все файлы, которые мне нужны для автономной работы, в файле манифеста кеша.

Кроме того, поправьте меня, если я ошибаюсь, но с манифестом кеша не должен ли браузер читать из кешированного источника, даже когда устройство подключено к сети? Когда я просматриваю сайт, фотографии, которые я не видел, загружаются с сервера, как и должно быть. Когда я закрываю и снова открываю, ранее просмотренные изображения все еще загружаются с сервера.

Я делаю что-то неправильно? Я проверил и перепроверил, вроде все правильно, только не уверен, почему не работает.

Спасибо.


person Daniel    schedule 25.08.2010    source источник


Ответы (3)


Я заметил, что ваш тег не ссылается на манифест.

<html manifest="cache.manifest">

Кроме того, необходимо убедиться, что в файле манифеста используется mime-тип text / cache-manifest.

Также убедитесь, что манифест имеет кодировку UTF-8, а не кодировку, которую браузер не может понять.

Также могу порекомендовать вам загрузить сайт в Chrome. Если вы проверите журнал разработчика в Chrome, Chrome напишет очень полезные сообщения об ошибках, которые укажут вам, в чем проблема.

person Morten    schedule 07.04.2011

Я заметил, что ваш тег не ссылается на манифест.

<html manifest="cache.manifest">

Кроме того, необходимо убедиться, что в файле манифеста используется mime-тип text / cache-manifest.

person Peder Rice    schedule 25.02.2011

У меня была аналогичная проблема:

Попробуйте указать абсолютные пути в вашем файле манифеста. Это помогло мне, и я тоже использовал поддомен.

Также включите консоль разработчика в Safari и добавьте следующий JS

function logEvent(event) {
  console.log(event.type);
}
window.applicationCache.addEventListener('checking', logEvent, false);
window.applicationCache.addEventListener('noupdate', logEvent, false);
window.applicationCache.addEventListener('downloading', logEvent, false);
window.applicationCache.addEventListener('cached', logEvent, false);
window.applicationCache.addEventListener('updateready', logEvent, false);
window.applicationCache.addEventListener('obsolete', logEvent, false);
window.applicationCache.addEventListener('error', logEvent, false); 

Таким образом вы можете проверить, что происходит с манифестом кеша в браузере, и узнать, возникает ли ошибка.

person polarblau    schedule 22.10.2011