4

我的本地 Node JS 测试服务器上的 Web 应用程序清单范围存在问题。我无法获得正确的范围,因为 IP 地址上的端口号妨碍了我。我正在使用以下地址访问我的服务器:

https://192.168.0.101:2468/

当我使用 Chrome 开发工具查看我的清单时,在 Application 选项卡下,它显示清单文件的 url 为::2468/manifest.json:2468不是我的根文件夹中的目录。

我将所有文件保存在根目录中,包括server.jsmanifest.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 应用程序,而只能从完全限定的域名安装。这可能是问题吗?

4

1 回答 1

0

您是对的,Progressive Web Apps 必须安装在一个适当的 URL 上,因为它们需要该范围才能正常运行。如果没有强制执行范围,流氓服务人员可以访问它不应该访问的站点。

于 2017-11-05T12:45:22.823 回答