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

我有一个反应的应用程序,工作得很好,客户端,现在试图让它在服务器端工作。

我正在使用create-react-app样板: https : //github.com/facebookincubator/create-react-app

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

所以像axios.get(process.env.API_URL + 'something')行将通过404,因为process.env.API_URLundefined

这是我的理解.env是我应该使用这样的东西的文件。 我错了吗? 我应该使用另一种方法来存储常见的环境variables? 或者有什么方法让节点服务器识别这些值?

您可以(应该)为生产版本提供服务。 当您使npm run build webpack将获取.env文件中的条目,并使用相应的值将其replace为构build版本。

对于服务器端渲染,你必须在你的节点服务器中定义环境variables,或者作为系统环境variables,或者在你的后端服务器读取的.env (这可能是一个webpack-dev-server使用的)