ASP MVC 3 웹 사이트에서 HTML 5 오프라인 응용 프로그램 캐시를 사용하려고합니다. 내가 얻는 문제는 오프라인 모드에서 페이지로 이동하려고 시도 할 때 일 때 작동하지 않는다는 것입니다.HTML 5 캐시 매니페스트가 아약스 요청과 함께 작동해야합니까?
동적으로 생성 될 수 있도록 매니페스트 파일에 대한 작업을 사용 중이며,보기에서 Resonse.ContentType = "text/cache-manifest"를 지정합니다.
IIS에 로컬로 응용 프로그램을 호스팅 했으므로 여기에 http://192.168.55.127/mywebsite/을 사용하고 있습니다.
이것은 내가 사용중인 매니페스트보기입니다. 그것은 면도기 뷰 엔진을 사용하고 무엇이 잘못되었는지 알아 내려고 시도하는 동안 약간 지저분합니다 (하드 코딩 된 URL 등) 입니다. 잘 될 것 같다
http://192.168.55.127/mywebsite/scripts/Libs/jQuery.js
http://192.168.55.127/mywebsite/pages/home.htm
:
@{
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:
*
이 같은 경로가 발생합니다.
나도 전체 경로를 사용하여 매니페스트 파일 참조 않은 : 나는 크롬에서 사이트 업로드하고 개발자 콘솔을 관찰 할 때와 같이 보인다
<html manifest="http://192.168.55.127/mywebsite/manifest">
은 괜찮을를, 모든를 캐시 나타납니다 어떤 오류도 던지지 않고 파일. 또한 http://192.168.55.127/mywebsite/manifest 으로 이동하면 내가보고 싶어하는대로 매니페스트를 제공합니다.
웹 사이트는 일반적인 탐색을 사용하지 않고 해시 조각을 사용하여 탐색합니다. 따라서 홈페이지로 이동하려면 url은 master.htm # home이되거나 옵션의 경우 master.html # options이됩니다. 이 해시 변경 사항은 javascript에 의해 선택되며 ajax를 사용하여 마스터의 div 컨테이너에 페이지를로드합니다. 특히 jQuery의 'load'메소드를 사용하여이를 수행합니다.
오프라인 모드가 아닌 경우 모두 잘 작동하며 탐색 할 때 크롬의 네트워크 탭을 볼 때 요청 URL은 정확하며 매니페스트 파일에 나열된 URL과 동일합니다. 내가 생각할 수있는 유일한 것은 오프라인 모드가 아약스 요청에 대해 작동하지 않는다는 것이지만, 나는 그것이 똑같이 작동했다는 인상 아래에 있었다.
모든 기록을 지우고, 웹 사이트 홈 페이지를 탐색하고, 오프라인 모드를 활성화 한 다음 옵션 페이지로 이동하여 FireFox (버전 9.0)를 사용하여 오프라인 모드를 테스트하고 있습니다. 방화 광구에서 옵션 페이지의 올바른 URL에 대한 GET 요청이 표시되지만 절대 반환하지 않으며 오류가 아닙니다. 로딩 휠 (예 : 방화범 뚜껑의 넷 탭에있는 요청 옆)은 여전히로드중인 것처럼 계속 회전합니다. 나는 오페라 11.60에서도 (그것도 오프라인 모드를 가지고있다.) 똑같은 일이 발생했다.
내가 뭘 잘못하고 있는지에 대한 아이디어가 있으십니까? 매니페스트가 어떻게 작동해야하는지 명확하지 않거나 잘못 이해 한 것을 놓쳤습니까? 모든 제안을 주시면 감사하겠습니다.