Я работаю над проектом, в котором одновременно используются SSR и SW.
SSR отлично работает при первом рендеринге и когда сканер читает страницу.
С другой стороны, Service Workerтоже хорошо работает.
Но проблема возникает после кэширования Service Worker index.html file.
Вот шаги, которые воспроизводят проблему:
- Когда вы сначала открываете страницу, вы видите, что SSR отображает html, и вы мгновенно получаете результат
- Затем Service Worker кэширует все
- Когда вы обновляете или изменяете страницу, вы не видите, что SSR отображает htmlпотому что index.html был кэширован Service Worker
- Если вы удаляете index.html из кэширования, Service Worker дает сбой
Я использую Angular 7.0
Это ngsw-config.json , который я использую:
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"updateMode": "prefetch",
"resources": {
"files": ["/favicon.ico", "/index.html", "/*.css", "/*.js"]
}
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": ["/assets/**"]
}
}
],
"dataGroups": [
{
"name": "api",
"urls": ["https://example.com/**"],
"cacheConfig": {
"maxSize": 30,
"maxAge": "1d",
"timeout": "30s",
"strategy": "freshness"
}
}
]
}