React ts模式使用http-proxy-middleware代理时访问报404问题
作者:pg_li
这篇文章主要介绍了React ts模式使用http-proxy-middleware代理时访问报404问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
React ts模式使用http-proxy-middleware代理时访问报404
create-react-app脚手架创建Recat应用,选择的是TypeScript
根据http-proxy-middleware文档 在src目录创建setupProxy.js,一直报错
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
createProxyMiddleware('/custom', {
target: 'http://127.0.0.1:7001',
changeOrigin: true, // needed for virtual hosted sites
ws: true, // proxy websockets
pathRewrite: {
'^/custom': ''
}
})
)
};解决方式
将setupProxy.js复制一份后缀改成ts可正常访问(setupProxy.ts setupProxy.js)
http-proxy-middleware的坑
react项目启动,页面显示“无法访问网站”,原因之一是代理脚本(setupProxy.js)的语法与版本对应不上。

解决方法:
旧版本写法
在src下新建setupProxy.js;
const proxy = require("http-proxy-middleware")
module.exprots = function (app) {
app.use(
proxy('/api1', {
target: 'http://localhost:5000',
changeOrigin: true, // 控制服务器收到的请求头host字段的值
pathRewrite: { '^/api1': '' } // 路径重写
})
)
}
新版本写法
在src下新建setupProxy.js;
const { createProxyMiddleware } = require('http-proxy-middleware')
module.exports = function (app) {
app.use('/api', createProxyMiddleware({
target: 'http://localhost:3000',
changeOrigin: true,
pathRewrite: {
"^/api": "/api"
}
}))
}
注意!!!!!!
两种写法的前缀位置是不一样的,旧版本是作为proxy的参数,新版本是app.use的参数
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
