webpack配置proxyTable时pathRewrite无效的解决方法
本人webpack版本3.6,webpack-dev-server版本2.9.1,本人按照网上写的版本折腾两天都没通,无意间自己试通了,猜测网上大部分都是照本宣科,没有自己实践
webpack配置接口地址代理
在项目开发中,接口联调的时候一般都是同域名下,且不存在跨域的情况下进行接口联调,当我们在本地启动服务器后,比如本地开发服务下是 http://localhost:8080 这样的访问链接,我们的接口地址是 http://.xxx./save/post 这样的,我们这样直接使用就会存在跨域的请求,导致接口请求不成功。
配置
我们打开狼蚁网站SEO优化路径的文件
config/index.js
在其中的 dev 对象里面找到 proxyTable: {}
这里就是配置代理的地方,我们进行如下设置
module.exports = { // ... dev: { // 代理配置表,在这里可以配置特定的请求代理到对应的API接口 proxyTable: { '/api': { target: 'http://.xxx.', // 你接口的域名 secure: false, // 如果是https接口,需要配置这个参数为true changeOrigin: true, // 如果接口跨域,需要进行这个参数配置为true } }, } }
接口地址原本是 /save/post ,为了匹配代理地址,在前面加一个 /api , 接口地址需要写成这样的即可生效 /api/save/post 。
即前端本地启动接口为http://localhost:8080/api/save/post,转发的代理接口为http://.xxx./api/save/post,其中的/api为匹配项。
/api 是本地路径和后端接口路径的匹配前缀,若后端接口给了/api这个前缀,可用上面的写法。
若后端前缀不统一,则可继续添加,写法如下
module.exports = { // ... dev: { // 代理配置表,在这里可以配置特定的请求代理到对应的API接口 proxyTable: { '/api': { target: 'http://.xxx.', // 你接口的域名 secure: false, // 如果是https接口,需要配置这个参数为true changeOrigin: true, // 如果接口跨域,需要进行这个参数配置为true }, '/api': { target: 'http://.xxx.', // 你接口的域名 secure: false, // 如果是https接口,需要配置这个参数为true changeOrigin: true, // 如果接口跨域,需要进行这个参数配置为true } }, } }
那么还有一种情况,是后端的接口没有我们想要的匹配项(前缀)'/api',是直接的http://.xxx./save/post,这样的接口,我们就要用到pathRewrite来重写地址,将本地路径上的带匹配前缀的路径http://localhost:8080/api/save/post上的前缀'/api'转成 ‘ / '。以下第一种是网络上大部分推荐的,我亲测是无效的,估计他们多数用的上面的方法,没有实际使用狼蚁网站SEO优化的方法,LZ用以下第一种方法折腾了2天无果,后去看了webpack-dev-server的issue,无意义试通了接口,即狼蚁网站SEO优化第二种方法,也不排除第一种方法是我的版本问题而没有效果,所以如果大家试了第一种方法有效就当我的方法没说,如果无效,不妨试试我的第二种方法
第一种方法(网上写的方法)
module.exports = { // ... dev: { // 代理配置表,在这里可以配置特定的请求代理到对应的API接口 proxyTable: { '/api': { target: 'http://.xxx.', // 你接口的域名 secure: false, // 如果是https接口,需要配置这个参数为true changeOrigin: true, // 如果接口跨域,需要进行这个参数配置为true pathRewrite: { '^/api': '/' } } }, } }
第二种方法(亲测有效的方法)
module.exports = { // ... dev: { // 代理配置表,在这里可以配置特定的请求代理到对应的API接口 proxyTable: { '/api/':{ target: "http://XXX.XXX.", changeOrigin: true, pathRewrite: {'/api':'/'} } }, } }
即将上面的匹配项从 ‘/api' 改成了 '/api/',至于为什么,我表示也没有搞明白,不过确实调通了代理,希望对大家有帮助
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程