6

所以我的设置如下:

  • https://sub.domain.com/folder/部署在 Azure Blob 存储中的静态网站 (mkdocs) ,在 Kestrel 上运行。
  • localhost:port在没有子域和文件夹的情况下进行本地测试。
  • <link rel="manifest" type="application/manifest+json" href="manifest.json" crossorigin="use-credentials">并且文件/folder/处于已部署状态,在本地测试中处于根目录中。
  • <script type="text/javascript" src="sw.js"></script>并且文件/folder/处于已部署状态,在本地测试中处于根目录中。
  • 清单中的 start_url 是/folder/.
  • 清单中的图标路径是,assets/icons/icon.png处于部署状态,在本地测试中处于根目录。assets/folder/

图标在本地工作,但在部署的站点上我得到:

Icon https://sub.domain.com/folder/assets/icons/icon.png failed to load

当我直接访问该 URL 时,文件加载得很好。

该网站落后于身份验证,但我crossorigin="use-credentials"在加载清单时使用。

完整清单.json:

{
    "short_name": "Site Hub",
    "name": "Site Hub",
    "start_url": "/docs/?utm_source=web_app_manifest",
    "icons": [
        {
            "src": "assets/icons/manifest-icon-192.png",
            "sizes": "192x192",
            "type": "image/png"
        },
        {
            "src": "assets/icons/manifest-icon-512.png",
            "sizes": "512x512",
            "type": "image/png"
        }
    ],
    "display": "standalone",
    "orientation": "portrait",
    "theme_color": "#20232A",
    "background_color": "#20232A"
}

我已经尝试过像./assets/icons/manifest-icon-512.png"以前一样的路径,但它也不起作用。

4

2 回答 2

0

您可能应该使用 package.json 中的 homepage 选项让您的应用程序知道它部署在https://sub.domain.com/folder

像这样:

...
"homepage": "https://sub.domain.com/folder",
...
于 2019-12-29T15:51:31.700 回答
0

我遇到了类似的问题,正在调查原因。结果,删除以下标题解决了该问题。

add_header Cross-Origin-Resource-Policy "same-origin";

https://developer.mozilla.org/en-US/docs/Web/HTTP/Cross-Origin_Resource_Policy_(CORP)

于 2022-01-14T05:51:27.330 回答