使我的应用程序对所有网络用户可见

make my application visible for all network users

我是 ReactJS 的新手。我开发了一个由 table 和多个列组成的应用程序,并且我已经成功地在本地主机上呈现我的应用程序。我的前端可从 http://localhost:3000 访问,后端可从 http://localhost:8000 访问。我正在使用 MongoDB 作为数据库。

现在我想让我的网络用户能够看到我的应用程序,因此我 运行 我的代码在 IP 为 10.68.10.20 的 windows 服务器上。现在,当我的网络用户在他们的 PC 或笔记本电脑上打开 http://10.68.10.20/3000 时,他们能够看到我的应用程序(以及 table 本身),但是我的 table 的内容(数据库)对他们不可见。

我在控制台中看到这个错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8000/api/v1/users?search=. (Reason: CORS request did not succeed). Status code: (null).

怎么了?我应该在我的应用程序中进行哪些更改才能对网络用户可见?

根据错误消息判断,您的应用正在尝试向 http://localhost:8000/api/v1/users?search=. 发出请求。可能是因为您的 front-end 在某处硬编码了 http://localhost:8000 back-end 地址。确保您的后端在端口 8000 上对 http://10.68.10.20:3000 的网络用户可用,然后在您的应用程序中更改它。

在生产应用程序中,此类地址通常不会 hard-coded 进入应用程序本身,而是使用 environment variables 配置,将在 build/bundled 步骤应用 front-end申请。

编辑: 因为您已经指定您已经在 .env 文件中使用环境变量,所以您通常做的是:

  • 创建一个不同的文件(名称类似于 .prod.env)以用于生产部署
  • 指定您的应用程序在其中使用的所有环境变量,例如您可以将 REACT_APP_API_URL=http://10.68.10.20:8000/api/v1 放入其中
  • 当您为其他用户部署您的应用程序时,请使用此文件而不是您用于本地开发的 .env 文件

这样您就可以轻松地在本地开发和生产配置之间切换,甚至可以同时启动两个环境。