一、配置
devServer:{
contentBase:'./',
proxy:{
// 当你请求是以/api开头的时候,代理会访问到http://localhost:3000
// 例如:
// /api/users 则访问到 http://localhost:3000/api/users
// 我们真实的服务器接口是没有/api的
"/api":{
target:"http://localhost:3000",
pathRewrite:{"^/api":""}
}
}
}
二、原理
如果你要用代理,首先你得有一个标识,告诉他你这个连接要用代理。不然的话, 可能你的 html, css, js这些静态资源都跑去代理.。所以我们只要接口用代理,静态文件用本地。
"/api": {},就是告诉node,我接口只要是"/api"开头的才用代理。所以你的接口就要这么写 /api/xx/xx. 最后代理的路径就是 http://xxx.xx.com/api/xx/xx。
可是我正确的接口路径里面没有/api,所以就需要pathRewrite,用"^/api" 把前缀去掉,这样既能有正确标识,又能在请求接口的时候去掉api。