在Angular中,如果在离线时start_url没有返回200的错误,可以尝试以下解决方法:
ngsw-config.json
文件中的navigationUrls
字段中包含了正确的start_url。这个字段用于配置service worker应该缓存的URL。{
"configVersion": 1,
"index": "/index.html",
"assetGroups": [{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/**.js",
"/**.css"
]
}
}],
"dataGroups": [],
"navigationUrls": [
"/**"
]
}
检查start_url的响应:在service worker注册之后,会发送一个HTTP请求到start_url来确认是否返回200。确保你的start_url返回了正确的响应代码(如200)。
检查缓存策略:Angular的service worker使用了一种缓存策略,它默认会缓存所有的GET请求。如果你的start_url使用了POST请求,或者有其他特殊的缓存需求,你可以通过修改ngsw-config.json
文件来自定义缓存策略。
{
"configVersion": 1,
"index": "/index.html",
"assetGroups": [{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/**.js",
"/**.css"
]
}
}],
"dataGroups": [],
"navigationUrls": [
"/**"
],
"cacheConfig": {
"strategyId": "performance",
"maxSize": 50,
"maxAge": "1y"
}
}
这些是解决Angular中“Angular-Serviceworker: 在离线时,start_url没有返回200。”错误的一些常见方法。希望对你有帮助!