我拥有quackr.io,并且由于用户看不到我的代码的新版本而遇到了一些麻烦。 quackr是部署到Firebase托管上的PWA(Angular SSR + Service worker)。
[每当我部署新版本时,以前浏览过该网站的任何人都将看到旧版本。如果进行硬刷新,您将看到新版本。但是,如果您执行其他常规页面刷新,它将恢复为旧版本。
这是我的firebase.json(我希望将no-cache添加到服务工作者js中,这会在部署时使它无效,但无法正常工作:]]]
{ "hosting": { "public": "dist/browser", "headers": [ { "source": "/@(ngsw-worker.js|ngsw.json)", "headers": [ { "key": "Cache-Control", "value": "no-cache" } ] } ], "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "function": "ssr" } ] }, "functions": { "predeploy": [ "npm --prefix \"$RESOURCE_DIR\" run lint", "npm --prefix \"$RESOURCE_DIR\" run build" ] } }
ngsw-config.json:
{
"index": "/index.html",
"appData": {
"name": "quackr.io",
"description": "v2.0"
},
"assetGroups": [{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/*.css",
"/*.js"
]
}
}, {
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**"
]
}
},
{
"name": "fonts",
"resources": {
"urls": [
"https://fonts.googleapis.com/**"
]
}
}]
}
任何帮助,谢谢大家!
我拥有quackr.io,并且由于用户看不到我的代码的新版本而遇到了一些麻烦。 quackr是部署到Firebase托管上的PWA(Angular SSR + Service worker)。每当我部署一个...
您将需要使用Angular的Service Worker更新功能,该功能将监视应用程序中的任何新更改,然后刷新页面或将更新通知用户,并为他们提供刷新自己的选项: