23

我正在 AWS Cloud9 中开发 PWA,但它不允许我的 manifest.json 包含/引用在链接标签中。它在开发工具中显示“VFS 连接不存在”,就好像它无法找到清单一样,因为它在应用程序外部。我在控制台中收到 499 错误。如果我停止节点 http-server 并重新加载预览页面,这与我收到的消息相同,因为它没有在端口 8080 上提供服务。它确实在链接标签中找到了 CSS 文件(在同一个文件夹中) ),是因为它是 rel=manifest,还是出于安全原因或其他原因,它不允许包含 json 文件?有谁知道为什么这个文件不起作用?

<link rel="manifest" href="manifest.json" />
4

3 回答 3

3

这是因为对清单文件的请求是在没有使用 cookie/凭据的情况下完成的,但是 VFS 代理使用 cookie 来限制对开发预览的访问。本质上 499 & 错误消息实际上意味着访问被拒绝

这个问题更笼统地描述了这个问题:Cookies not sent with request for Web App manifest.json

我已经确认这适用于 AWS cloud9 和 Google Chrome 78。

<link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">

于 2019-12-06T06:52:00.167 回答
1

这主要是因为现在您的应用程序无法在端口 80 上公开访问,一旦您上线,它应该不是问题。

更新 - 下面的替代方法

您可以将清单 json 内容作为 base64 编码字符串放在 html 本身中。下面是示例清单 json 及其在页面上的链接标记中的实现。

{
  "name": "your app name",
  "gcm_sender_id": "xxxxxxx",
  "gcm_user_visible_only": "true"
}

在 HTML 页面上 -

<link rel="manifest" href="data:application/manifest+json;base64,ewogICJuYW1lIjogInlvdXIgYXBwIG5hbWUiLAogICJnY21fc2VuZGVyX2lkIjogInh4eHh4eHgiLAogICJnY21fdXNlcl92aXNpYmxlX29ubHkiOiAidHJ1ZSIKfQ==">
于 2018-06-21T18:57:47.857 回答
-2

根据 MDN Web Docs,链接标签应该是这样的。

<link rel="manifest" href="/manifest.webmanifest">

这是我找到的信息的链接。我希望它有所帮助。

https://developer.mozilla.org/en-US/docs/Web/Manifest


PS:我是 StackOverflow 的新手,所以无法评论这个问题,这就是为什么在答案本身中发布一些研究。

于 2018-06-20T15:46:08.980 回答