我的本地 Node JS 测试服务器上的 Web 应用程序清单范围存在问题。我无法获得正确的范围,因为 IP 地址上的端口号妨碍了我。我正在使用以下地址访问我的服务器:
https://192.168.0.101:2468/
当我使用 Chrome 开发工具查看我的清单时,在 Application 选项卡下,它显示清单文件的 url 为::2468/manifest.json
但:2468
不是我的根文件夹中的目录。
我将所有文件保存在根目录中,包括server.js
、manifest.json
和索引,称为my-app.html
_ website-directory
|_ server.js
|_ manifest.json
|_ my-app.html
在我的清单文件中,我有:
{
"scope": "./",
"start_url": "my-app.html"
}
当我将代码上传到我的 Github Pages 站点时,一切都运行良好:工作示例。我认为问题出:2468
在我的 IP 地址后面。我没有像 Github Pages 这样的完全限定域名的问题。
如果我尝试将端口号放入清单的范围,如下所示:
"scope": "./:2468/",
"start_url": "my-app.html"
它打破了我的清单的范围,我收到了这个警告:Manifest: property 'scope' ignored. Start url should be within scope of scope URL.
这很有意义,因为:2468
它不是我目录中的文件夹。这只是 Chrome 决定附加到我的清单文件的 url 的东西。
如何解决清单文件的范围以忽略端口号?为什么 Chrome 开发工具显示我的清单位于:2468
不存在的目录中?
这是一个问题的原因是因为我的 Web 应用程序无法在应用程序模式下打开,并带有全屏窗口和启动画面。它仅在带有 url 栏的浏览器中打开,并且似乎根本没有使用应用程序清单。
更新:2017 年 11 月 5 日
通过使用该 URL https://192.168.0.101:2468/my-app.html
,我可以访问我的 Web 应用程序,而无需:2468/
在清单 url 中显示开发工具。我的应用程序确实安装到主屏幕和应用程序抽屉,但它只在浏览器中打开,而不是带有启动屏幕的全屏应用程序。我没有收到有关清单范围的警告,并且我的服务人员注册并完美运行。我开始认为不能从 IP 地址安装渐进式 Web 应用程序,而只能从完全限定的域名安装。这可能是问题吗?