(一)接口转发
这个转发在项目中是常用到的 webpack - proxy - target
// mock及代理 devServer: { // 配置代理 // 当访问 /clean 下的接口时,将请求转发到 https://jz74.djtest.cn 这个域名口,变换域名 proxy: { '/clean': { target: 'https://jz74.djtest.cn' } } }当请求 /clean 将代理到 https://jz74.djtest.cn/clean
(二)接口转换(重定向)webpack - proxy - pathRewrite
// 配置代理 // 当访问 /clean 下的接口时,将请求转发到 https://jz74.djtest.cn 这个域名口,变换域名 proxy: { '/clean': { target: 'https://jz74.djtest.cn', // 如果接口本身没有 /api 需要通过pathRewrite来重写了地址,这里把/api转成‘ ’ pathRewrite: { "^/api": "" } } }^ 是一个正则,表示以 /api 开头
(三)跨域相关 webpack - proxy - changeOrigin
proxy: { '/clean': { target: 'https://jz74.djtest.cn', pathRewrite: { "^/api": "" }, changeOrigin: true } }(四)WebpackDevServer 解决单页面应用路由404问题 (historyApiFallback)
使用HTML5历史记录API时,index.html可能必须在该页面上代替任何404响应。devServer.historyApiFallback通过将其设置为启用true:
单页应用(SPA)一般只有一个index.html, 导航的跳转都是基于HTML5 History API,当用户在越过index.html 页面直接访问这个地址或是通过浏览器的刷新按钮重新获取时,就会出现404问题;
配置后:就会先转发到 index.html,转换到对根目录(index.html)的请求
proxy: { '/clean': { target: 'https://jz74.djtest.cn', pathRewrite: { "^/api": "" }, changeOrigin: true, historyApiFallback: true } }rewrites的方式:
devServer: { historyApiFallback: { rewrites: [ { from: /^\/$/, to: '/views/landing.html' }, { from: /^\/subpage/, to: '/views/subpage.html' }, { from: /./, to: '/views/404.html' } ] } }historyApiFallback: true 表示访问任何一个路径,就转到请求 index.html 页面
这样配置好后,开发是没问题的,上线后,history 模式需要后段配合配置路由,不然也会 404
