vue.config.js配置前端代理

1//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions 2// 这里只列一部分,具体配置参考文档 3module.exports = { 4 // 部署生产环境和开发环境下的URL。 5 // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上 6 //例如 https://www.my-app.com/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.my-app.com/my-app/,则设置 baseUrl 为 /my-app/。 7 //baseUrl 从 Vue CLI 3.3 起已弃用,请使用publicPath 8 //baseUrl: process.env.NODE_ENV === "production" ? "./" : "/", 9 publicPath: process.env.NODE_ENV === "production" ? "./" : "/", 10 11 // outputDir: 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致) 12 outputDir: "mycli3", 13 //用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下) 14 assetsDir: "assets", 15 //指定生成的 index.html 的输出路径 (打包之后,改变系统默认的index.html的文件名) 16 // indexPath: "myIndex.html", 17 //默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存。你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) 18 filenameHashing: false, 19 20 // lintOnSave:{ type:Boolean default:true } 问你是否使用eslint 21 lintOnSave: true, 22 //如果你想要在生产构建时禁用 eslint-loader,你可以用如下配置 23 // lintOnSave: process.env.NODE_ENV !== 'production', 24 25 //是否使用包含运行时编译器的 Vue 构建版本。设置为 true 后你就可以在 Vue 组件中使用 template 选项了,但是这会让你的应用额外增加 10kb 左右。(默认false) 26 // runtimeCompiler: false, 27 28 /** 29 * 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 30 * 打包之后发现map文件过大,项目文件体积很大,设置为false就可以不输出map文件 31 * map文件的作用在于:项目打包后,代码都是经过压缩加密的,如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错。 32 * 有了map就可以像未加密的代码一样,准确的输出是哪一行哪一列有错。 33 * */ 34 productionSourceMap: false, 35 36 // 它支持webPack-dev-server的所有选项 37 devServer: { 38 host: "0.0.0.0", 39 port: 8080, // 端口号 40 https: false, // https:{type:Boolean} 41 open: true, //配置自动启动浏览器 42 // proxy: 'http://localhost:4000' // 配置跨域处理,只有一个代理 43 44 // 配置多个代理 45 proxy: { 46 "/api": { 47 target: "http://192.168.x.xxx:8090", // 要访问的接口域名 48 ws: true, // 是否启用websockets 49 changeOrigin: true, //开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题 50 pathRewrite: { 51 "^/api": "" //这里理解成用'/api'代替target里面的地址,比如我要调用'http://40.00.100.100:3002/user/add',直接写'/api/user/add'即可 52 } 53 } 54 } 55 } 56 };

项目中的实战:

1 /* 跨域代理 */ 2 // bmp/bigdipper/view为页面路径,不能做代理,其他非view的都为接口路径,走代理 3 open: true, // =>编译完成后会自动打开浏览器 4 proxy: { 5 '^/api': { 6 target: 'http://10.29.32.19:8088/', 7 changeOrigin: true, 8 ws: true, 9 pathRewrite:{ 10 '^/api':"" 11 }, 12 onProxyReq(proxyReq, req, res) { 13 14 }, 15 onProxyRes(proxyRes, req, res) { 16 const cookies = proxyRes.headers['set-cookie']; 17 if (cookies) { 18 const newCookies = cookies.map((item) => `${item};path=/;Domain=localhost`); 19 proxyRes.headers['set-cookie'] = newCookies; 20 } 21 }, 22 disableHostCheck: true, 23 }, 24 25 }, 26 },

baseURL.js:

1undefined

个人理解: 代理就是用来解决本地和服务器之间的跨域问题,设置代理后在请求接口的路径中会有/api,,target路径就像是媒介,中转着请求和响应数据

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang