【问题标题】:Access host variable from virtual machine从虚拟机访问主机变量
【发布时间】:2019-05-09 19:55:08
【问题描述】:

我有一个 react-app,我将我的应用设置为在启动应用时使用 HOST 变量在自定义 url 上运行,例如:

"scripts": {
    "start": "HOST=my-local-website.com ..."
}

我需要从 Windows 虚拟机访问此 URL 以在 IE11 上对其进行测试,在设置 HOST 变量之前,我能够简单地从我的 IP 地址 (192.168.X.XX:3000) 访问它,已更改HOST 变量这不再起作用了。

有谁知道我如何从虚拟机访问它? 提前谢谢你

【问题讨论】:

  • 剩下的定义为 ... 是什么?它应该类似于“strat”:HOST=hostname react-scripts start
  • 或所有需要的值都在.env.development 中定义,其中 react-scripts 可以访问

标签: reactjs npm host


【解决方案1】:
  1. 我建议在单独的 .env 文件中设置环境变量,如 dicumentation 中所述。

  2. .env 文件集HOST=my-local-website.com 中更改主机(不清楚为什么官方文档建议在所有环境变量前加上REACT_APP_

  3. 网站名称my-local-website.com 映射到服务器的IP 地址(在您的情况下为192.168.X.XX:3000)是使用DNS 完成的。这与网络有关,与您使用的框架无关。因此,为了能够通过名称访问您的站点,您必须在站点名称和 IP 地址之间建立映射

这个映射的 DNS 术语看起来像

my-local-website.com A 192.168.X.XX

但是对于测试目的,您可以使用简化的方法(我认为您没有建立 DNS 服务器)。在 Windows 上,您可以使用位于 C:\Windows\System32\drivers\etc 文件夹中的 hosts 文件。文件名为hosts。使用任何文本编辑器(如记事本)打开它并添加字符串

192.168.X.XX  my-local-website.com

IP 地址在前,名字在后。不要包括端口号 (:3000),因为它与 DNS 无关。 hosts 文件应该在您的测试(客户端)PC 上更改,而不是在您的应用运行的 PC 上。

您还可以修改运行应用程序的 PC 上的主机,以检查主机是否已正确配置。

要检查一切是否正确,您可以像这样使用ping

ping my-local-website.com

如果您正确配置了所有内容,则应打印 IP 地址。

  1. 如果您在 Windows 主机上运行应用程序,防火墙配置可能会出现问题。如果您的应用在启动它的同一台 PC 上打开但不在另一台 PC 上打开,则很可能防火墙会阻止流量。如果您有的话,它可以是 WIndows 防火墙或防病毒软件。

【讨论】:

  • 感谢您的回答,我已经完成了,但仍然无法正常工作。我也试过用ping,好像还可以,但是IE11说“这个页面无法显示”。
  • 我已经测试了自己并在单独的 .env 文件中设置正确的环境变量工作正常。我已经修改了答案并显示了所有必需的步骤。
  • 如果我设置REACT_APP_HOST它根本不起作用,它仍然将localhost显示为url
  • 我设置了我的REACT_APP_HOST 变量,我不得不删除我的HOST 一个,现在我可以从Windows 访问它,但我也想当我运行npm run start 时它会自动打开我的浏览器使用my-local-website.com:3000 而不是localhost:3000
  • 我已经修改了答案。我可以在备用主机上运行 react-app 并且该主机是在应用启动时设置的
猜你喜欢
  • 2020-07-17
  • 2014-03-15
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-05
  • 2011-02-12
  • 2018-10-13
相关资源
最近更新 更多