在线时影响非 GET 请求的服务工作者 - @angular/pwa
service worker affecting non-GET requests when online - @angular/pwa
我在我的项目中添加了一个 service worker,GET 请求在线和离线都能完美运行。
但是我在线时遇到非 GET 请求的问题。
当我使用 http-server 加载网站时(激活 service worker),
服务工作者似乎拦截了它们。
并且它从不以相同的方法将 POST/DELETE 请求转发到服务器。
它不是向服务器发送 DELETE/POST 请求,而是向同一路径发送 GET 请求(这显然没有帮助)
当然,该项目不会被删除:
ngsw-config.json:
localhost:3000 是服务器。
当我使用 ng serve(没有 service-worker)加载网站时,一切正常。
谁能告诉我如何解决它?
为了从缓存中获取最新响应,您需要在 ngsw-config.json 文件中指定缓存策略(新鲜度或性能)。
在 assetGroups
键后添加 dataGroups
:
"dataGroups": [{
"name": "GiveAnySuitableName",
"urls": [
"/**",
],
"cacheConfig": {
"strategy": "freshness",
"maxSize": 100,
"maxAge": "3d",
"timeout":"3s"
}
}
]
官方 angular PWA 文档:https://angular.io/guide/service-worker-config
我在我的项目中添加了一个 service worker,GET 请求在线和离线都能完美运行。
但是我在线时遇到非 GET 请求的问题。
当我使用 http-server 加载网站时(激活 service worker),
服务工作者似乎拦截了它们。
并且它从不以相同的方法将 POST/DELETE 请求转发到服务器。
它不是向服务器发送 DELETE/POST 请求,而是向同一路径发送 GET 请求(这显然没有帮助)
当然,该项目不会被删除:
ngsw-config.json:
localhost:3000 是服务器。
当我使用 ng serve(没有 service-worker)加载网站时,一切正常。
谁能告诉我如何解决它?
为了从缓存中获取最新响应,您需要在 ngsw-config.json 文件中指定缓存策略(新鲜度或性能)。
在 assetGroups
键后添加 dataGroups
:
"dataGroups": [{
"name": "GiveAnySuitableName",
"urls": [
"/**",
],
"cacheConfig": {
"strategy": "freshness",
"maxSize": 100,
"maxAge": "3d",
"timeout":"3s"
}
}
]
官方 angular PWA 文档:https://angular.io/guide/service-worker-config