摘要:需求上是我们只需要在开发环境配置跨域代理,所以我们可以在开发环境的配置上加上能够代理上的环境变量即可。修改的配置将改为这里依然是采用的来做的代理配置,一些自定义配置可以移步到官网去进行参考。
写在前面
vue-cli 3.x 的beta版本已经发布了一段时间,很早就像体验一番一直找不到时间。这些日子刚好有空就想着依照网上的一些例子练下手,刚一上手就踩到坑了。
3.x 版本对整个项目的构建都有很大的改动,项目的默认配置整个都转移到CLI service里去了,从而所有的配置文件在初始化的项目中并没有生成。初次生成项目的时候可谓是完全懵的,无论是baidu还是google,对于3.x的介绍几乎就没有,仅有的一些也只是项目的一些生成流程,那怎么办,只能靠自己瞎整了。
既然没有现成的(作为一个伸手党我还是很自觉的承认了),那就只能去扒官方文档了,慢慢啃。这可就苦了我这个英语战斗力只有5的渣了,凭借着百度翻译和谷歌翻译,然后夹杂着自己的一些猜想,好歹是把基本的给整明白了一点点。
由于文笔实在太烂了,多余的废话就不说了,直接上干货。
跨域代理配置由于3.x的默认配置都转移到了CLI service里,所以生成的项目中并没有配置项,我们如果需要自定义一些项目配置,则需要自己在项目的根目录(root)创建一个vue.config.js。vue.config.js里的配置项所有都是可选的,这就避免了我们去看一大堆不必要的默认配置,只需要配置自己需要的部分就行了。【官方文档】
由于baseUrl也是关联的部署目录,我们需求的仅仅是开发环境的变量,所以尽可能的我们不动baseUrl这个变量以免部署的时候出现问题。所以这里配置稍作修改。
需求上是我们只需要在开发环境配置跨域代理,所以我们可以在开发环境的配置上加上能够代理上的环境变量即可。官方提供了环境变量的配置方案。
在项目的根目录,我们创建一个.env.development文件来做开发环境的变量设置。
我们在.env.development文件下设置变量VUE_APP_BASE_API=/api即可将devServer的proxy重写的url赋值给VUE_APP_BASE_API,我们仅需在axios的封装方案上使用VUE_APP_BASE_API这个变量,就可以对应上devServer设置的变量。
// vue.config.js module.exports = { // 修改的配置 // 将baseUrl: "/api",改为baseUrl: "/", baseUrl: "/", devServer: { proxy: { "/api": { target: "http://www.example.org", changeOrigin: true, ws: true, pathRewrite: { "^/api": "" } } } } } // .env.development VUE_APP_BASE_API=/api
这里依然是采用的http-proxy-middleware来做的代理配置,一些自定义配置可以移步到官网去进行参考。
后记第一次写文档,之前都是伸手养成了懒得习惯,现在因没有可伸手的,就自己撸了,同时以此便利萌新以及也在踩坑的小伙伴。希望能帮到大家。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/94408.html
摘要:我们将引入我们配置的中,再将修改如下路径你们改下将印射为接口域名如果是接口,需要配置这个参数是否跨域需要的之后不管是生产环境,还是开发环境,都不用再修改我们的请求地址了。 前言 我们在使用vue-cli启动项目的时候npm run dev便可以启动我们的项目了,通常我们的请求地址是以localhost:8080来请求接口数据的,localhost是没有办法设置cookie的。 我们可以...
摘要:由两部分组成回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数。回调函数的名字一般是在请求中指定的。动态创建标签,设置其,回调函数在中设置在页面中,返回的作为参数传入回调函数中,我们通过回调函数来来操作数据。 什么是跨域? 同源策略规定了如果两个 url 的协议、域名、端口中有任何一个不等,就认定它们跨源了。 跨域的解决方式有哪几种? 1.JSONP 是 JSON with ...
摘要:由两部分组成回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数。回调函数的名字一般是在请求中指定的。动态创建标签,设置其,回调函数在中设置在页面中,返回的作为参数传入回调函数中,我们通过回调函数来来操作数据。 什么是跨域? 同源策略规定了如果两个 url 的协议、域名、端口中有任何一个不等,就认定它们跨源了。 跨域的解决方式有哪几种? 1.JSONP 是 JSON with ...
摘要:有两种方法,一种是在开发环境中设置通过的,另一种是在服务器上修改的配置设置。这样我们以后使用访问接口就可以不加了,打包后访问也不用手动去除统一管理在项目开发过程中,会涉及到很多接口的处理,当项目足够大时,就需要统一管理接口。 这篇文章总结了vue项目的所遇到的问题,包括跨域、用户认证、接口统一管理、路由配置、兼容性处理,性能优化等内容。 项目github地址 : 前端 https:...
阅读 3103·2023-04-26 01:58
阅读 953·2021-11-24 09:38
阅读 3286·2021-09-03 10:29
阅读 714·2021-08-21 14:10
阅读 1490·2019-08-30 15:44
阅读 3088·2019-08-30 14:10
阅读 3212·2019-08-29 16:32
阅读 1477·2019-08-29 12:48