1

我有一个 Angular 6 应用程序,其中包含:

"@angular/pwa": "^0.6.0",
"@angular/service-worker": "^6",

我得到了一个不错的服务工作者,但是在离线情况下,服务工作者不会处理带有 url GET 参数或版本的资源:

GET 504 .../fontawesome-webfont.af7ae505a9eed503f8b8.woff2?v=4.7.0 
GET 504  .../fontawesome-webfont.fee66e712a8a08eef580.woff?v=4.7.0 
GET 504  .../fontawesome-webfont.b06871f281fee6b241d6.ttf?v=4.7.0

路径是对的!

这些文件位于 build 命令生成的 ngsw.json 中:

"/bordbuch_v2/frontend/fontawesome-webfont.674f50d287a8c48dc19b.eot",
"/bordbuch_v2/frontend/fontawesome-webfont.912ec66d7572ff821749.svg",
"/bordbuch_v2/frontend/fontawesome-webfont.af7ae505a9eed503f8b8.woff2",
"/bordbuch_v2/frontend/fontawesome-webfont.b06871f281fee6b241d6.ttf",
"/bordbuch_v2/frontend/fontawesome-webfont.fee66e712a8a08eef580.woff",

但我认为 GET 参数是问题所在。有谁知道我如何阻止字体真棒将版本参数放入 URL

或者

如何让(角度)服务人员使用 GET 参数响应文件?

4

1 回答 1

0

解决方案是通过这个正则表达式将所有文件添加到 ngsw-config.json 并取消注册旧的服务工作者并清除所有缓存:

{
  "index": "/index.html",
  "assetGroups": [{
    "name": "app",
    "installMode": "prefetch",
    "resources": {
      "files": [
        "/fontawesome-webfont*",
      ]
    }
于 2018-05-07T07:33:56.067 回答