【问题标题】:React: deployment with serve in production modeReact:在生产模式下使用服务进行部署
【发布时间】:2018-06-27 14:10:05
【问题描述】:

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

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

如果我将工作目录设置为 react/build,它会返回 404 错误。

build 文件夹内

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

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

如果我更改为react/buildreact/build/static或其他,则显示404。

【问题讨论】:

标签: reactjs serve


【解决方案1】:

如果你使用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 服务器。

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

【讨论】:

  • 最后我删除了-s ./build 选项,它可以工作了
  • -s./build 是两个不同的选项,不是一个:-s 是将 404 重定向到 index.html 文件,目录是要服务的基本路径。如果没有可选目录,它将为当前工作目录提供服务——这似乎是您遇到的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 2019-10-26
  • 2021-02-04
  • 2013-12-11
  • 1970-01-01
相关资源
最近更新 更多