在响应服务器端渲染时使用 process.env



我有一个在客户端运行良好的反应应用程序,现在正在尝试让它在服务器端工作。

我正在将其与创建反应应用程序样板一起使用: https://github.com/facebookincubator/create-react-app

我遇到了一个问题,我将一些环境变量存储在 .env 中,但是在服务器上我无法访问这些变量。

因此,像axios.get(process.env.API_URL + 'something')这样的行将通过404,因为process.env.API_URLundefined

我的理解是.env是我应该用于此类内容的文件。 我说错了吗? 我应该使用另一种方法来存储常见的环境变量吗? 或者有没有办法让节点服务器识别这些值?

您可以(应该)为生产版本提供服务。

当您制作npm run buildwebpack 会获取.env文件中的条目,并在构建中用相应的值替换它们。

对于服务器端渲染,您必须在节点服务器中定义环境变量,要么作为系统环境变量,要么在后端服务器读取的.env上(可能是 webpack-dev-server 正在使用的那个)。

根据创建 React 应用程序文档,为了在静态和 SSR 应用程序中向 React 公开环境变量,变量名称必须以REACT_APP_为前缀。这可以防止敏感和/或不必要的变量包含在 javascript 捆绑包中。

最新更新