我有一个在客户端运行得很好的 React 应用程序,现在正在尝试让它在服务器端运行。
我将它与 create-react-app 样板一起使用: https://github.com/facebookincubator/create-react-app
我遇到了一个问题,我在 .env 中存储了一些环境变量,但是在服务器上我无法访问这些变量。
因此,诸如 axios.get(process.env.API_URL + 'something')
之类的行将通过 404,因为 process.env.API_URL
是 未定义
。
据我了解,.env 是我应该用于此类内容的文件。我错了吗?我应该使用另一种方法来存储公共(public)环境变量吗?或者有什么方法可以让 Node 服务器识别这些值?
最佳答案
您可以(应该)为生产版本提供服务。
当您执行 npm run build
时,webpack 会获取 .env
文件中的条目,并在构建中将其替换为相应的值。
对于服务器端渲染,您必须在 Node 服务器中定义环境变量,可以是系统环境变量,也可以是后端服务器读取的 .env
(可以是正在使用的一个 webpack-dev-server)。
关于node.js - React 服务端渲染时使用 process.env,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46100913/