2016-09-09 4 views
1

내 웹 응용 프로그램은 다음과 같이이다 :서비스 노동자 파일

내가 아파치 서버 내 도메인과 SSL을위한 포트 443를 포함한 다양한 하위 도메인에 대한 가상 호스트와 포트 80에서 실행해야합니다.

은 내가 nodejs 응용 프로그램이 nodejs에 아파치에서 PROXYPASS를 사용하여 리디렉션됩니다 내 주요 도메인에 포트 5000

모든 트래픽에서 실행해야합니다.

그러면 NodeJs가 서비스 작업자를로드합니다.

문제 : 예상대로 전체 도메인 메시지를 통해 등록 properly.Shows 서비스 노동자를 작동

온라인 모드에서 응용 프로그램의 첫 번째로드합니다. 심지어 일부 css, js 및 img 응답을 반환합니다 .ServiceWorker.

하지만 이제는 오프라인 페이지에서 동일한 페이지를 열면 서비스 담당자가 웹 앱을 여는 부분을 재생하지 않습니다.

오류 : 1. 잡히지 않음 (약속 있음) TypeError : 가져 오지 못했습니다 (...).

  1. 서비스 작업자 파일의 스크립트를 가져 오는 중 알 수없는 오류가 발생했습니다.

적절하게 구현하려면 도움이 될 것입니다.

답변

5

브라우저가 모든 탐색 요청에 대해 현재 서비스 담당자에게 해당하는 JavaScript 파일을 다시 페치하려고 시도합니다. 자세한 내용은 this Stack Overflow answer에서 확인할 수 있습니다.

로그에 표시되는 내용은 서비스 작업자를위한 JavaScript를 가져올 수 없다는 것을 반영합니다 (오프라인 상태이기 때문에 의미가 있습니다). 이 경우 브라우저가 이미 알고 캐시 한 이전 자바 스크립트가 다시 사용되며 서비스 담당자는 예상대로 작동해야합니다. DevTools 콘솔에서 가져온 서비스 작업자의 JavaScript에 대한 잡음은 무시할 수 있습니다.

캐시 된 리소스를 검색하는 것과 같이 서비스 작업자 자신의 실제 기능과 관련된 오류가 발생하는 경우 구현시 문제가 있음을 알 수 있습니다. 그러나 그것은 기록되고있는 것처럼 들리는 것은 아닙니다.

0

html 파일이 캐시되고 서비스 작업자 스크립트가 최상위 레벨에 있는지 확인하십시오.