Я пытаюсь получить кеш-приложение автономного приложения HTML 5 с веб-сайтом ASP MVC 3. Проблема, которую я получаю, это то, что , когда я пытаюсь перейти на страницу в автономном режиме, она не работает.Должен ли ядро кэша HTML 5 работать с запросами ajax?
Я использую действие для файла манифеста, чтобы оно могло быть динамически сгенерировано, и в представлении я указываю Resonse.ContentType = "text/cache-manifest".
Я разместил приложение локально в IIS, поэтому я использую http://192.168.55.127/mywebsite/ для доступа к нему.
Это явный вид, который я использую. Он использует механизм просмотра бритвы и немного беспорядочен (жестко закодированный URL и т. Д.) , пока я пытаюсь выяснить, что не так.
@{
Layout = null;
Response.ContentType = "text/cache-manifest";
}
CACHE MANIFEST
# Version: @ViewBag.Version
CACHE:
#Script Files
@foreach(var jsFile in Url.GetJsFiles())
{
@string.Format("{0}{1}\r\n", "http://192.168.55.127", Url.Content(jsFile))
}
#Style Sheets
@foreach(var cssFile in Url.GetCssFiles())
{
@string.Format("{0}{1}\r\n", "http://192.168.55.127", Url.Content(cssFile))
}
#Images
@foreach(var imageFile in Url.GetImageFiles())
{
@string.Format("{0}{1}\r\n", "http://192.168.55.127", Url.Content(imageFile))
}
#HTML Pages
@string.Format("{0}{1}", "http://192.168.55.127", Url.Content("~/pages/master.htm"))
@string.Format("{0}{1}", "http://192.168.55.127", Url.Content("~/pages/home.htm"))
@string.Format("{0}{1}", "http://192.168.55.127", Url.Content("~/pages/options.htm"))
NETWORK:
*
Это приводит путей, таких как:
http://192.168.55.127/mywebsite/scripts/Libs/jQuery.js
http://192.168.55.127/mywebsite/pages/home.htm
который, кажется, хорошо.
Я ссылается манифест файл, используя полный путь тоже:
<html manifest="http://192.168.55.127/mywebsite/manifest">
, который, кажется, будет хорошо, а когда я загружаю сайт вверх в хроме и наблюдать консоль разработчика, он появляется кэшировать все файлы без каких-либо ошибок. Также, если я перехожу к http://192.168.55.127/mywebsite/manifest , он обслуживает манифест, как я ожидал бы увидеть его.
Веб-сайт не использует обычную навигацию, вместо этого он перемещается с использованием хеш-фрагментов - поэтому для перехода на главную страницу url будет master.htm # home или для параметров, это будут опции master.html #. Это изменение хэша подхвачено javascript, и он загружает страницу в контейнер div в главном с помощью ajax, более конкретно он использует метод load в jQuery для этого.
Все это прекрасно работает, когда он не находится в автономном режиме, а при наблюдении за вкладкой в сети в режиме хромирования URL-адрес запроса является правильным и является тем же URL-адресом, который указан в файле манифеста. Единственное, о чем я могу думать, это то, что автономный режим не работает для запроса ajax, но у меня создалось впечатление, что он работает одинаково.
Я тестирую автономный режим с использованием FireFox (версия 9.0), очищая всю историю, просматривая домашнюю страницу веб-сайта, позволяя автономный режим, а затем пытаюсь перейти на страницу параметров. В firebug я вижу запрос GET для правильного URL страницы параметров, но он никогда не возвращается, это даже не ошибка. Загрузочное колесо (рядом с запросом на вкладке net в firebug) просто продолжает поворачиваться, как будто оно все еще загружается. Я тоже пробовал его в Opera 11.60 (так же, как и в автономном режиме), и происходит то же самое.
У любого есть идеи относительно того, что я делаю неправильно? Я пропустил что-то очевидное или неправильно понял, как должен работать манифест? Любые предложения будут оценены.