AppCache и pushState

Для своего мобильного приложения я хочу использовать pushState и AppCache, но это кажется сложным.

Чтобы заставить pushState работать, мой веб-сервер перенаправляет каждый URL-адрес (кроме ресурсов, таких как сам файл манифеста, изображения, файлы css и js) на /index.html внутри.

Например. запрос к /articles/123 будет перенаправлен на / соответственно /index.html (так что исходный запрошенный URL-адрес все еще отображается в браузере).

Это вызывает запрос к manifest.appcache по неправильному пути, например /articles/123/manifest.appcache вместо /manifest.appcache, что приводит к проблеме, заключающейся в том, что браузер создает новую группу кеша для каждого URL-адреса, к которому осуществляется прямой доступ (например, при поиске Google).

Я перенаправляю (.*)/manifest\\.appcache на /manifest.appcache, и он интерпретируется, так что все должно работать как положено. Я думаю, что основная проблема заключается в том, что браузер обрабатывает файл manifest.appcache на уровне URL, а не на уровне домена.

Итак, это приводит меня к следующим вопросам:

  1. Это практичный подход?

  2. Если да, могу ли я указать браузеру использовать AppCache на уровне домена и как?

  3. Если нет, то что я не продумываю?


person thobens    schedule 08.07.2013    source источник


Ответы (1)


Когда вы помещаете атрибут manifest в элемент <HTML>, просто правильно задайте путь, чтобы он указывал на корневой каталог:

<html manifest="/appcache.manifest">
person idbehold    schedule 08.07.2013
comment
Этот святой слэш... Спасибо! - person thobens; 09.07.2013