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的参数
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。