我使用Google的SW Precache爲在Firebase上託管的Angular(當前爲v.4)應用程序生成服務工作者。我正在使用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文件,即使我刷新或關閉瀏覽器。如果我在網址的末尾添加了類似?cachebust=1
的內容,我可以獲取更新後的index.html文件。有沒有我在我的過程或配置錯誤,不允許加載最新的index.html?
這似乎這樣的伎倆!對於它的價值,我爲/index.html添加了相同的「no-cache」,但現在看起來變化幾乎是瞬間的 – jloosli