如何为子域禁用Service Worker?

时间:2019-07-18 09:31:06

标签: javascript angular service-worker angular-service-worker

我有一个用angular运行的webapp,并且有一个运行的service worker。每当我在s3.amazonaws.com上执行PUT和GET操作时,请求总是来自服务人员。

什么配置可以用来使我来往于s3.amazonaws.com的请求被服务工作者忽略?

这是我的nsgw-config.json

{
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "resources": {
        "files": [
          "/favicon.ico",
          "/index.html",
          "/*.css",
          "/*.js"
        ]
      }
    }, {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "resources": {
        "files": [
          "/assets/**"
        ]
      }
    }
  ]
}

1 个答案:

答案 0 :(得分:1)

如果要防止重复的服务人员呼叫,请执行以下步骤。

  1. 建立项目生产模式。
  2. 转到构建文件夹(默认为/ dist)
  3. 打开/ dist目录下的ngsw-worker.js文件。
  4. 找到onFetch(event) {函数
  5. 按如下所示修改onfetch函数

    onFetch(event) {
    

    /* sub domain URL here and subdomain ajax all domain here.*/

    var blackListDomain=["www.xyz.com/api","www.abc.com/v2/api"];
    
    for (var i = 0; i < blackListDomain.length; i++) {
        if (event.request.url.indexOf(blackListDomain[i])>-1) {
             console.log("revent " + event.request.url);
            return;
        }
    }
    

提示

Get name of dictionary