如何将 React api 服务点指向我的域而不是 localhost:8000

soc*_*way 0 nginx reactjs nginx-config vultr

我已在服务器中部署了我的反应应用程序Vultr并安装nginx在服务器中,并通过运行以下命令配置了以下设置。

$ sudo nano /etc/nginx/sites-available/default

server {

    listen 80;
    server_name somedomain-test.com www.somedomain-test.com;
    root /var/www/somedomain-test.com/build;
    index index.html;
}
Run Code Online (Sandbox Code Playgroud)

我确实运行npm run build并将构建文件夹复制到以下目标文件夹中/var/www/automateandmore.com/build

然后运行以下命令:

$ sudo nginx -t
$ sudo systemctl restart nginx
Run Code Online (Sandbox Code Playgroud)

我能够看到前端。server.js现在我已经从文件夹位置启动了src/,但我仍然可以看到它正在调用localhost:8000/service/listofblogs: 我该如何解决这个问题,有人可以建议吗?

这是我的 package.json 设置

{
  "name": "myblogs",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    .....
     
  },
  "proxy": "http://localhost:8000",
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
    ....
  }
}
Run Code Online (Sandbox Code Playgroud)

.env 文件

DANGEROUSLY_DISABLE_HOST_CHECK=true
REACT_APP_URL=http://somedomain-test.com
Run Code Online (Sandbox Code Playgroud)

小智 5

如果我正确地阅读了文档,那么你就搞反了。请参阅开发中的代理 API 请求

要告诉开发服务器将任何未知请求代理到开发中的 API 服务器,请将代理字段添加到 package.json,例如:

"proxy": "http://localhost:4000",
Run Code Online (Sandbox Code Playgroud)

但你说“而不是 localhost:8000”,但这是你的代理为应用程序提供的 url。

将其更改为您要点击的网址。