我用“ create-react-app”和一个简单的Express服务创建了一个基本的React应用。在react应用程序中,我向指向Express服务URL的Package.json文件添加了“代理”。
"proxy": <EXPRESS URL HERE>
在本地测试时,React通过代理调用Express,一切正常。当我部署到Google App Engine时,代理不起作用。我使用本地React实例测试了Express服务(在App Engine上),并且一切正常。当我将React应用部署到App Engine时(运行NPM RUN BUILD之后),代理无法正常工作。
我观看了有关使React / Express与'proxy'一起工作的视频:https://youtu.be/8bNlffXEcC0
答案 0 :(得分:2)
该设置仅适用于https://create-react-app.dev/docs/proxying-api-requests-in-development
对于生产,您将需要Express来提供Express API和React构建。您可以在快速代码中使用类似的方法来做到这一点:
app.use(express.static(`${__dirname}/../build`)) // serves the react build
app.use('/api', apiRouter) // your api code
现在,当您启动Express服务器时,它将立即提供您的API和构建代码。