Почему из-за кеш-манифеста не удается получить мобильный Safari для кэширования сайта при работе, как ожидается, на настольном компьютере?
Я локально играю с простым веб-приложением и не могу понять, почему оно неправильно кеширует на iPhone. Я служу .manifest
файл с правильным MIME-типом, и сайт отлично работает с моим локальным сервером, включенным или выключенным на настольных Safari, Chrome и Firefox. Только мобильный Safari не может кешировать сайт. Есть идеи, почему это может быть?
3 ответа
Кажется, это ошибка iOS.
Я обнаружил, что в мобильном сафари всегда будет ошибка кэширования приложения, если у вас открыто хотя бы одно веб-представление и вы очищаете кеш браузера. Я думаю, что очистка кеша браузера уничтожит базу данных кеша. Все обращения к базе данных кеша завершатся неудачно. Похоже, что браузер создает эту базу данных только при запуске.
Чтобы заставить кэш приложения работать снова, закройте все представления Safari и, наконец, закройте браузер, вернувшись на домашний экран. Теперь кеширование приложения должно работать. Некоторые мобильные устройства также требуют включения и выключения.
Если вы знаете метод обнаружения этой ситуации, дайте мне знать, пожалуйста.
Я могу подтвердить, что ошибка также присутствует на iPAD под управлением iOS 4.3.
Я потратил довольно много времени, чтобы заставить работать кеш автономного приложения на iPad. Я могу подтвердить, что обходной путь, упомянутый в предыдущем посте, работает.
У меня была похожая проблема, но Safari и iPhone не работали, в то время как IE и Firefox работали. Причина была сложной. Одним из них было неправильное написание слова "манифест" в теге HTML. Глупая ошибка и очень неприятно, что IE и FF по-прежнему работают в автономном режиме. Другая проблема заключалась в том, что я использовал default.asp в качестве главной страницы моего приложения и не включал его в манифест.
Моим приложением был mydomain.com/myapp/, поэтому браузер никогда не видел "default.asp". Кроме того, согласно спецификации HTML5, главная страница не обязательно должна быть в манифесте, но, очевидно, Safari видит это немного по-другому...