2014-02-21 5 views
0

저는 작은 webapp가 있고 HTML5의 appcache (오프라인 캐싱) 기능을 사용하고 있습니다. 파일 이름 : 다음 내 매니페스트 파일 코드 Manifest1.appcacheAppcache가 작동하지 않습니다.

CACHE MANIFEST 

#21/02/14 

CACHE: 

Login.htm 

......... 

내 Login.htm에 난 그냥 표시하는 간단한 텍스트가 나는 HTML 여는 태그 manifest="Manifest1.appcache" 있습니다.

나는 이것을 IIS에 배포했으며 IIS가 켜져있을 때 작동합니다. IIS를 중지하면이 페이지에 한 번 액세스 한 다음 404가 표시됩니다. (Application Cache Obsolete event)이 발생합니다. 왜 아무런 단서가 없네. 제발 도와 줘.

답변

1

obsolete 이벤트는 장치가 온라인 상태 일 때 (또는 최소한 브라우저에 그렇게 보이면) 발생하지만 매니페스트 파일을 검색 할 수 없을 때 발생합니다. 따라서 서버를 종료해도 브라우저가 여전히 온라인 상태라고 생각하기 때문에 오프라인 상태가 올바르게 시뮬레이트되지는 않지만 브라우저에 표시되는 것처럼 매니페스트 파일을 검색 할 수는 없습니다. 매니 페스트를 삭제 했으므로 서버를 종료하는 것이 테스트 방법이 아닙니다. 오프라인 상태를 시뮬레이트하는 가장 좋은 방법은 오프라인 상태입니다. 기기에서 Wi-Fi를 사용 중지하면 모두 올바르게 작동합니다.

또한 서버가 text/cache-manifest MIME 형식의 파일 인 .appcache을 제공하도록 구성되어 있는지 확인하십시오. 일부 브라우저는이를 요구합니다.

+0

나는 wifi와 IIS를 끄지 만 여전히 운이 없다. – user1985466

+0

올바른 MIME 형식의 파일을 전송하지 않는 것이 가능할 수도 있습니다. 서버가'text/cache-manifest' MIME 타입으로'.appcache' 파일을 보내도록 설정되어 있는지 확인하십시오. 나는 IIS (Apache와 Node.js 만 사용했다.)에서 그렇게하는 방법을 모르지만 설정하기가 매우 어렵다고 생각하지 않습니다. 그리고 테스트 할 때 실제로 오프라인 상태가되는지 확인하십시오. – Markasoftware

+0

MIME 형식이 IIS에 설정되어 있으면 다른 제안을 보내 주시면 감사하겠습니다. – user1985466

2

이것이 맞는지 확실하지 않습니다. 하지만 내 매니 페스트 파일에 문제가있어 파일 이름의 철자가 잘못되었습니다. 매니페스트 파일의 유효성 검사를 시도하여 모든 파일의 철자가 올바른지 확인 했습니까?

다음은이를위한 좋은 도구입니다 : http://www.yoursite.com/manifest.appcache

같이 캐시 매니페스트 즉 뭔가 URL에 넣어 http://manifest-validator.com/validate을 내가 실수로 이미지 경로에 폴더를 포함하지 않은 몇 가지 실수를했다. 이 도구는 실수를 찾기 위해 잘 작동했습니다. 또한 Grunt를 사용하는 경우 맞춤법 오류를 방지하기 위해 매니페스트 파일을 자동으로 작성하는 grunt manifest라는 과장된 작업이 있습니다. https://github.com/gunta/grunt-manifest