저는 firebase에 호스팅 된 Angular (현재 v.4) 앱의 serviceworker를 생성하기 위해 Google의 SW Precache을 사용하고 있습니다. Angular cli를 사용하여 분산 파일을 생성합니다.캐시 캐스팅 서비스 담당자 index.html 파일
이ng build --prod --aot #build angular app
sw-precache --config=sw-precache-config.js --verbose # generate precache
firebase deploy # Send to firebase
내 sw-precache-config.js
파일은 다음과 같습니다 :
module.exports = {
staticFileGlobs: [
'dist/**.css',
'dist/**/**.png',
'dist/**/**.svg',
'dist/**.js'
],
stripPrefix: 'dist',
root: 'dist/',
navigateFallback: '/index.html',
runtimeCaching: [
{
urlPattern: /index\.html/,
handler: 'networkFirst'
},
{
urlPattern: /\.js/,
handler: 'cacheFirst'
}, {
urlPattern: /fonts\.googleapis\.com/,
handler: 'fastest'
},
{
default: 'networkFirst'
}
]
};
내가 변경하고 새 버전을 배포하는 경우, 나는 캐시를 얻을 내 응용 프로그램을 배포하는 데 시간이 올 때, 나는 다음과 같은 명령을 사용하여 index.html 파일을 새로 고치거나 닫아도됩니다. URL 끝에 ?cachebust=1
같은 것을 추가하면 업데이트 된 index.html 파일을 얻을 수 있습니다. 최신 index.html을로드 할 수없는 프로세스 또는 구성에서 내가 잘못하고있는 것이 있습니까?
! 가치가있는 것을 위해, 나는 /index.html에 대해서도 같은 "no-cache"를 추가했지만, 지금은 변화가 거의 즉각적으로 일어난 것처럼 보입니다. – jloosli