Для своего мобильного приложения я хочу использовать 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, а не на уровне домена.
Итак, это приводит меня к следующим вопросам:
Это практичный подход?
Если да, могу ли я указать браузеру использовать AppCache на уровне домена и как?
Если нет, то что я не продумываю?