自己在做的项目是Avue+Springcluod 的技术框架,这个框架是自己刚进公司接触到的。自己刚毕业开始工作,自己踩的一些坑分享一下。不喜勿喷!!!
项目正常情况:分别启动本地前台与后台的项目程序,然后开启debug模式可以正常热部署后台,但是这次从git拉完项目之后自己开始修改时,发现自己修改的接口无法访问到。
然后开始测试,
- 首先添加一个简单的接口,让前台调用,其中不牵扯任何方法只有一个控制台输出System.out.println()方法。结果:404
- 自己修改原有的接口路径,然后让前台去调用,结果:404,到这里我以为的idea 出现编译问题,或者是 spring的控制层扫描出现问题了,然后rebuild、清缓存、重新导入maven的依赖包,但是始终无法解决。
- 然后测到晚上之后,实在无法解决,我就再装了另一个版本的IDEA 然后插件、配置、maven 。最后测试:还是404
- 但是晚上发现 虽然新改的接口路径无法访问,但是旧的路径可以访问啊。我还以为是没有编译上呢,然后到第二天开始再次重启电脑,重启缓存,重启IDEA 最终发现我的电脑好像自己在运转一套项目,后台不启动也可以访问,但是我查了进程,啥都没啊。
- 最后灵机一动,我问了一下前台,平时他是怎么测试数据的。发现了vue-cli 的跨域代理,在vue.config.js文件中
// 配置转发代理
devServer: {
disableHostCheck: true,
port: 8080,
proxy: {
'/': {
target: url,
ws: false, // 需要websocket 开启
pathRewrite: {
'^/': '/'
}
}
// 3.5 以后不需要再配置
}
这东西害我不浅啊,目前来说我把***url*** 指向的地址从服务器改为我的本地(127.0.0.1)后,我的本地就可以正常运行了。我不太懂代理,vue 的跨域代理一开就是全局代理,不管你本地的后台起不起,只要前台访问的是本地前台他都会给后台指向服务器。
并且 这个毛病用postman 来测试的话也是没用的,我中间用postman开始测试接口,即便ip填写的自己的本地IP,但是只要前台启动之后,本地IP也得给你掰弯了,指向了服务器。