Как работник сервиса работает с поддоменом? - PullRequest
0 голосов
/ 24 мая 2018

Я использую Angular 6 и ngsw-config.json для настройки сервисного работника, но я не имею понятия о том, как он работает с поддоменами.

из моего понимания

  1. пользователь попадает в example.com .
  2. работник службы регистрируется для example.com .
  3. что происходит с abc.example.com , xyz.example.com ?

что нужно сделать для кэширования assetsGroups и dataGroups всех поддоменов?

вот мой текущий ngsw-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/**"
      ]
    }
  },{
    "name": "fonts",
    "resources": {
      "urls": [
        "https://fonts.googleapis.com/**",
        "https://fonts.gstatic.com/**"
      ]
    }
  }],
  "dataGroups": [
    {
      "name": "database",
      "urls": [
        "https://**.api.example.com/pl/**",
        "https://**.api.example.com/en/**"
      ],
      "cacheConfig": {
        "maxSize": 100000000,
        "maxAge": "3d",
        "timeout": "2m"
      }
    }
  ]
}

1 Ответ

0 голосов
/ 24 мая 2018

Сервисный работник рассматривает каждый домен и поддомен как уникальное приложение различного происхождения.Поэтому для каждого субдомена, который вы собираетесь использовать, требуется отдельный сервисный работник. Вот хорошая статья , в которой обсуждаются различные варианты, которые у вас есть.

Если вы считаете, что субдомены могут быть сопоставлены с одним доменом, а также с псевдонимом (например, abc.example.com to example.com/abc/), вы можете просто управлять своим приложением с одним работником службы.

Но когда это не вариант, идеальным вариантом будет наличие нескольких обслуживающих работников и предварительное кэширование, когда это уместно.

...