【问题标题】:How to disable service worker for sub domains?如何禁用子域的服务工作者?
【发布时间】:2019-11-27 04:51:38
【问题描述】:

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

可以使用什么配置来使我的往返 s3.amazonaws.com 的请求被 service worker 忽略?

这是我的 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/**"
        ]
      }
    }
  ]
}

【问题讨论】:

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


    【解决方案1】:

    如果您想防止重复的 service worker 调用,请执行以下几个步骤。

    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;
          }
      }
      

    提示

    【讨论】:

      猜你喜欢
      • 2018-11-03
      • 2015-10-30
      • 2020-07-13
      • 2016-03-16
      • 2022-08-05
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      相关资源
      最近更新 更多