0

したがって、これは少し奇妙な問題であり、オンラインのどこにも参照が見つからないようです。ここの誰かが次の点と潜在的な修正に光を当てることができることを望んでいました-

Google の PWA 要件に準拠した Angular CLI アプリケーションがあります。すべてが期待どおりに機能しますが、一部の画像は Service Worker によってキャッシュされていません。

ここに私の ngsw-config.json があります -

    {
  "$schema": "./node_modules/@angular/service-worker/config/schema.json",
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "resources": {
        "files": [
          "/favicon.ico",
          "/index.html",
          "/*.css",
          "/*.js",
          "../assets/signalR/appHub.js",
          "../admin/images/**",
          "../manifest/manifest.json"
        ],
        "urls": [
          "/api/WhoAmI",
          "/api/GetApps"
        ]
      }
    }, {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "resources": {
        "files": [
          "/assets/**",
          "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)",
          "../admin/images/**"
        ]
      }
    }
  ]
}

admin/images フォルダー内には、いくつかの背景画像、ロゴ、スピナー、アイコンなどがあります。ただし、「ng-build --prod」を実行すると、キャッシュされる画像は、CSS で参照されている画像 (background-画像)。ページ自体に配置されたものはすべて無視されます。

これにより、ロゴやアイコンのないオフライン ページが作成されます。

生成された「dist」フォルダーを見ると、「作業」イメージ ファイルがコピーされ、ランダムなサフィックスが付けられます。 生成された画像ファイル

生成された ngsw.json ファイル内では、これらの画像のみが参照されており、欠落しているロゴなどについては言及されていません。

{
  "configVersion": 1,
  "timestamp": 1568879436433,
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "updateMode": "prefetch",
      "urls": [
        "/favicon.ico",
        "/index.html",
        "/main-es2015.b125878abf05e7d82b63.js",
        "/main-es5.6e9e620d3fbd96496f98.js",
        "/polyfills-es2015.4d31cca2afc45cfd85b5.js",
        "/polyfills-es5.2219c87348e60efc0076.js",
        "/runtime-es2015.703a23e48ad83c851e49.js",
        "/runtime-es5.465c2333d355155ec5f3.js",
        "/scripts.f616c8c0191ed4649bce.js",
        "/styles.a4be089a70c69f63e366.css"
      ],
      "patterns": [
        "\\/api\\/WhoAmI",
        "\\/api\\/GetApps"
      ]
    },
    {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "urls": [
        "/assets/signalR/appHub.js",
        "/bgrounds-geometric-black.8d983f6875c006eda992.png",
        "/bgrounds-geometric-red.1484266e3058319624bd.png",
        "/block-spinner-dark.20f05a2ddef506c61f4d.gif",
        ...
    }
    ...
}

これを完全に解明できる人はいますか?

長い質問で申し訳ありませんが、ここまでお持ちでしたら、よろしくお願いします:)

どんな助けでも大歓迎です!

4

2 に答える 2

-1

以下の行を ngsw-config.json に追加しました

"/runtime*",
"/main*",
"/style*",
"/polyfill*"

後はこんな感じ

{
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "resources": {
        "files": [
          "/runtime*",
          "/main*",
          "/style*",
          "/polyfill*",
          "/favicon.ico",
          "/index.html",
          "/css",
          "/js"
        ]
      }
    }, {

その後、うまくいきました。

于 2021-03-12T06:59:58.887 に答える