自从最近发布CRA(创建React App)v2以来,现在可以将代理设置从package.json
移至setupProxy.js
。我的问题很简单:如果我只想一直使用setupProxy.js
,我的http://127.0.0.1:5000
应该是什么样?我需要这样做,因为如果一切正常(到目前为止没有运气),我可以将其替换为开发/生产环境的.env
文件中的变量。
但是到目前为止,我只得到a或b:
a)CORS错误
b)由于http请求而返回了我应用的index.html
这是我尝试过的setupProxy.js版本之一的示例:
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
app.use('/', proxy({target: 'http://127.0.0.1:5000', changeOrigin: true}));
app.use('/*', proxy({target: 'http://127.0.0.1:5000', changeOrigin: true}));
app.use(proxy({'/', target: 'http://127.0.0.1:5000', changeOrigin: true}));
app.use(proxy({'/*', target: 'http://127.0.0.1:5000', changeOrigin: true}));
};
我尝试了app.use
行的各种版本,我只是在此处发布了几个示例。
我通常一次尝试一次app.use
行,但也尝试了多行。
每次更改文件时,我都会重新启动react app。
我还尝试使用process.env.REACT_APP_BACKEND_BASEURL
代替'http://127.0.0.1:5000'
,这是我的最终目标。
答案 0 :(得分:0)
所以尝试
app.use(proxy('/**', { target:'http://127.0.0.1:5000', changeOrigin: true }))
答案 1 :(得分:0)
如果我没记错,正确使用C:\Windows\System32
仅对本地开发有用,但我也需要它在实时/部署服务器上工作,因此我最终根本不使用setupProxy.js
-我在不同的setupProxy.js
文件(REACT_APP_BACKEND_BASEURL
文件中的loclahost url和.env
文件中的远程URL)中将不同的后端URL保存为.env.development
变量,并替换了所有在前端出现的URL使用.env.production
的JavaScript代码。