我参考了此处记录的角度服务人员和dataGroups
配置:https ://angular.io/guide/service-worker-config#datagroups 。
我的配置dataGroups
如下:
"dataGroups": [
{
"name": "api-performance",
"urls": [
"/api/referential/**"
],
"cacheConfig": {
"strategy": "performance",
"maxSize": 100,
"maxAge": "3d"
}
}
]
它现在缓存所有匹配该模式的 http 请求。
但是,我们还传递了一个自定义的 http 请求标头(即x-project-id: 8545dbf0-6e8b-47b0-b5ad-874415b20b63
),http 响应将依赖该标头。
因此,对于两个不同x-project-id
的值,响应的内容会有所不同。
让我们看一个例子:
第一个 GET 请求:
网址:/api/referential/xxx
标题:x-project-id: foo
第二个 GET 请求:
网址:/api/referential/xxx
标题:x-project-id: bar
不幸的是,使用我当前的配置,角度服务工作者将缓存第一个请求并返回第一个请求的响应内容,无论我的自定义标头是否已更改...
这是设计使然吗?
有没有办法确保角度服务人员考虑到自定义 http 标头,还是我必须project Id
在 url 中传递?