Node.js 在服务器端渲染时使用process.env
我有一个react应用程序,在客户端运行得很好,现在正试图让它在服务器端运行 我将其与create react应用程序样板一起使用: 我遇到了一个问题,我在.env中存储了一些环境变量,但是在服务器上我无法访问这些变量 所以像Node.js 在服务器端渲染时使用process.env,node.js,reactjs,environment-variables,server-side-rendering,Node.js,Reactjs,Environment Variables,Server Side Rendering,我有一个react应用程序,在客户端运行得很好,现在正试图让它在服务器端运行 我将其与create react应用程序样板一起使用: 我遇到了一个问题,我在.env中存储了一些环境变量,但是在服务器上我无法访问这些变量 所以像axios.get(process.env.API_URL+'something')这样的行将通过404,因为process.env.API_URL是未定义的 据我所知,.env是我应该用于此类内容的文件。我错了吗?我应该使用另一种方法来存储公共环境变量吗?或者是否有某种
axios.get(process.env.API_URL+'something')
这样的行将通过404,因为process.env.API_URL
是未定义的
据我所知,.env是我应该用于此类内容的文件。我错了吗?我应该使用另一种方法来存储公共环境变量吗?或者是否有某种方法让节点服务器识别这些值?您可以(应该)为生产构建提供服务
当您进行npm运行build
webpack时,会获取.env
文件中的条目,并用相应的值替换生成中的条目
对于服务器端渲染,您必须在节点服务器中定义环境变量,作为系统环境变量或在后端服务器读取的.env
上(可能是Web包开发服务器正在使用的)。根据,为了在静态和SSR应用程序中公开环境变量以作出反应,变量名称的前缀必须为REACT\u APP\
。这可以防止javascript包中包含敏感和/或不必要的变量