Автономный кеш html5 кэширует все файлы вместо кэшированных файлов, которые перечислены

Я пытаюсь использовать автономное кэширование html5. Но проблема в том, что он кэширует все html-файлы, а не те, которые я упомянул в файле манифеста кеша:
Например: у меня есть 4 html-файла: index.html, test.html, sample.html, fallback.html и я иметь файл манифеста sample.appcache, который содержит:

CACHE MANIFEST
index.html
sample.html
NETWORK:
test.html
FALLBACK:
/ /fallback.html

У меня нет атрибута manifest="sample.appcache" в любом html-файле. Я использую JBoss 5 AS и в web.xml добавил сопоставления mime следующим образом:

<mime-mapping>
    <extension>appcache</extension>
    <mime-type>text/cache-manifest</mime-type>
</mime-mapping>

Таким образом, только index.html и sample.html должны быть кэшированы в автономном режиме, но test.html также кэшируется, если он был удален ранее, когда сервер был включен. Fallback.html не вызывается, когда сервер останавливается вместо этого test.html
Что не так с этой настройкой?
Второе, что я не понял, это IE(v9) и Firefox(v19) ) Мне не нужно устанавливать сопоставления пантомимы, но для работы приложения в chrome (v26) и Safari (v5.1.7) этот параметр действительно обязателен.


person user2025527    schedule 29.04.2013    source источник


Ответы (1)


Я не работал с JBoss, но причина, по которой Chrome и Safari хотят использовать тип MIME для кеша приложения, заключается в том, что в противном случае у него нет возможности идентифицировать его как манифест кеша. Простое решение - просто включить его :-P

Что касается кэширования, где вы видите его кеширование? Он точно хранится в офлайн-разделе? Имейте в виду, что файлы по-прежнему будут кэшироваться как обычно, независимо от манифеста кэша.

person BayssMekanique    schedule 29.04.2013
comment
После остановки сервера я все еще могу просматривать страницы, нажимая URL-адрес: localhost:8080/MyApp /index.html, тогда как раньше, если я не использую файл манифеста, эта страница не может отображаться после выключения сервера. - person user2025527; 29.04.2013
comment
Используйте инструменты разработки в Chrome (ctrl+shift+I на ПК), и есть вкладка для ресурсов, в которой есть небольшой раздел для просмотра того, где хранятся ресурсы. Используйте это, чтобы убедиться, что файлы действительно хранятся в автономном кеше манифеста, а не в каком-то другом системном кеше или кеше браузера. - person BayssMekanique; 29.04.2013
comment
Спасибо за подсказку в хроме. Была ошибка при загрузке резервной страницы /fallback.html был неверным, все работало путем удаления косой черты, так как в консоли для этой страницы было 404. Также я заметил, что для работы safari / firefox в автономном режиме тип документа на странице html должен быть только html 5 - это было исключением для chrome. Теперь я вижу свой appcache на вкладке «Ресурсы-кэш приложений» в Chrome и Safari. Для IE все еще не работает. Как отладить в IE правильно ли работает кеш приложения или нет? Также есть ли плагин в Firefox для просмотра этого кеша приложений, как в хроме? - person user2025527; 30.04.2013
comment
Я обнаружил, что в соответствии с w3schools.com/html/html5_app_cache.asp IE 10 поддерживает приложение cache, и у меня установлен IE9. Это может быть причиной. - person user2025527; 30.04.2013