我正在AWS Cloud9中开发PWA,但它不允许在链接标记中包含/引用manifest.json。它说" VFS连接不存在"在开发工具中,好像它无法找到清单,因为它在应用程序的外部。我在控制台中收到499错误。如果我停止节点http-server并重新加载预览页面,这就是我得到的相同消息,因为它没有在端口8080上提供。它可以在链接标签中找到CSS文件就好了(在相同的文件夹),因为它是rel = manifest,或者出于安全原因或其他原因,它不允许包含json文件?有谁知道为什么这个文件不起作用?
<link rel="manifest" href="manifest.json" />
答案 0 :(得分:2)
主要是因为现在您的应用程序无法在端口80上公开访问,一旦上线就不会有问题。
更新-下面的替代方法
您可以将清单json内容作为base64编码的字符串放在html本身中。 以下是示例清单json及其在页面上link标签中的实现。
{
"name": "your app name",
"gcm_sender_id": "xxxxxxx",
"gcm_user_visible_only": "true"
}
在HTML页面上-
<link rel="manifest" href="data:application/manifest+json;base64,ewogICJuYW1lIjogInlvdXIgYXBwIG5hbWUiLAogICJnY21fc2VuZGVyX2lkIjogInh4eHh4eHgiLAogICJnY21fdXNlcl92aXNpYmxlX29ubHkiOiAidHJ1ZSIKfQ==">
答案 1 :(得分:0)
根据MDN Web文档,链接标记应如下所示。
<link rel="manifest" href="/manifest.webmanifest">
这是我找到的信息的链接。希望对您有所帮助。
https://developer.mozilla.org/en-US/docs/Web/Manifest
PS:我是StackOverflow的新手,所以无法对此问题发表评论,这就是为什么要对答案本身进行一些研究。
答案 2 :(得分:0)
之所以发生这种情况,是因为清单文件的请求没有使用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">