将React应用程序作为nginx中的子路径

时间:2019-02-18 15:38:51

标签: javascript reactjs nginx mod-rewrite create-react-app

有一个React App可在0.0.0.0:5000上本地投放。 我也有一个域名example.com

我要做的是将example.com/app目录代理到0.0.0.0:5000中。

我尝试了以下方法。

location /app  {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_redirect     off;
    proxy_set_header   Host $host;
    rewrite /app/(.*) /$1 break;
    proxy_pass http://0.0.0.0:5000/app;

}

但是在控制台中,错误提示如下

Loading failed for the <script> with source “http://localhost/static/js/bundle.js”. app:45:1
Loading failed for the <script> with source “http://localhost/static/js/0.chunk.js”. app:45:1
Loading failed for the <script> with source “http://localhost/static/js/main.chunk.js”.

我也尝试将homepage: './app添加到package.json中

我该如何解决?

1 个答案:

答案 0 :(得分:2)

nginx配置对我来说还不错,但是您需要更新Webpack配置以及React应用程序中的路由器配置,以便在特定路径上为应用程序提供服务。

我对以下要点一无所知,但它涵盖了您需要的所有情况:

https://gist.github.com/codepunkt/ae82a0f3b9deb93908dc1f3d5bbc8da2

(请注意,您的basePath应该以“ /”开头,例如“ / app”)