2017-05-13 2 views
0

Service Worker가 '스크립트를 가져올 때 404 오류가 발생했습니다.'라는 오류 메시지가 나타납니다. 서비스 담당자가 다음과 같이 서비스 담당자를 등록했습니다. : 또한서비스 근로자 등록 문제

<script> 
    if('serviceWorker' in navigator) { 
    navigator.serviceWorker 
      .register('/ServiceWorker.js') 
      .then(function() { console.log("Service Worker Registered"); }); 
    } 
    </script> 

, 우리는 서비스 작업자에서 .aspx 페이지를 캐시 할 수 있습니다? 감사.

답변

0

페이지 내이 스크립트는 /ServiceWorker.js를 찾을 단지 수없는, 2 중으로 인해 1 일 어느 파일 /ServiceWorker.js이 루트 웹 사이트 폴더에 존재하지 않는 또는 이름을 잘못 입력 될 수 있습니다. 누락 된 단계는 전혀 없으며 스 니펫은 괜찮아 보입니다.

다른 질문은 그렇습니다. 글꼴, CSS 및 JS와 같은 정적 파일뿐만 아니라 동적 네트워크 응답도 캐시 할 수 있습니다.

내부 /ServiceWorker.js 추가 : 당신이 요청하려고하는 URL을 콘솔과 등 서버, 이미지, 텍스트 .. 당신은 어떤 응답 개체를 복제하고 그것을 넣을 수 있습니다 귀하의 브라우저에 기록합니다

self.addEventListener('fetch', function(event) { 
    console.log(event.request); 
}); 

귀하의 캐시에 다음 방문시 제공 될 것입니다.

GOOG 예/자습서 : ServiceWorker.js이 serviceWorker를 등록하는 파일에 액세스 할 수있는 사용자의 https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker#serving_files_from_the_cache

+0

Zouhir에게 도움이되었습니다. 감사. – Salim

+0

또한 ServiceWorker.js 파일에 동적 URL을 캐싱 할 수있는 방법을 묻습니다. – Salim

+0

문제가 없습니다! 여기에 내 대답의 마지막 부분은 강조 표시 : http://stackoverflow.com/a/43950394/4412434 – Zouhir

0

확인 경로. 다른 손 당신이 가져 오려고하는 파일은 서비스 작업자의 범위 안에 있어야합니다. 조각 이상으로

if ('serviceWorker' in navigator) { 
    window.addEventListener('load', function() { 
     navigator.serviceWorker.register('/resources/ServiceWorker.js').then(function(registration) { 
     // Registration was successful 
     console.log('ServiceWorker registration successful with scope: ', registration.scope); 
    }, function(err) { 
     // registration failed :(
      console.log('ServiceWorker registration failed: ', err); 
     }); 
    }); 
} 

는 가져올 수 :

/resources/js/***.js //200 Ok /resources/css/***.css //200 Ok /static/***.js //404 Not found, because not in scope

0

두 가지가 가능합니다 :

  • 경로/이름 중 하나 에 serviceWorker 파일이 올바르지 않습니다.
  • ServiceWorker 파일이 폴더 구조의 루트에 없습니다. 루트에 있어야합니다.