React:在生产模式下部署服务

React: deployment with serve in production mode

我有一个部署在我的网络服务器上的 reactjs 应用程序。

我构建了我的应用程序(所以它创建了一个 build 文件夹),当我想用​​ ~/.npm-packages/bin/serve -s ./build -l tcp://0.0.0.0:8100 启动它时它工作(工作目录设置为 react/,构建是这里 react/build 但我们可以在我的页面上看到所有源代码,该理论在生产模式下是不可能的。

如果我将工作目录设置为 react/build 它 return 404 错误。

build 文件夹中

不幸的是,它没有 return 任何其他错误。

更新:我只存储 build 文件夹并且它可以工作,但我们总能看到源代码,即使它处于生产模式。

如果我改成react/buildreact/build/static等,显示404。

如果您正在使用 npm's serve(create-react-app 的默认设置,我假设您正在使用),第二个参数是要服务的目录:

$ serve --help

$ serve} [-l listen_uri [-l ...]] [directory]

By default, serve will listen on 0.0.0.0:5000 and serve the
current working directory on that address.

-s, --single                        Rewrite all not-found requests to `index.html`

但是serve是为了开发服务。它适用于制作小型静态站点,但请考虑使用另一个经过生产验证的 Web 服务器。

你的未压缩源根本不应该保存在生产服务器上。您应该只将构建文件部署到生产环境。