Vue+SpringBoot前后端分离打包部署遇到的坑
1. 在vue项⽬的⽬录下,⽤npm run build ⽣成dist⽬录,将⽬录下的static和index.html复制到SpringBoot项⽬下的resource⽬录下
这个时候发现启动Springboot项⽬,不能打开index页⾯
⽐如: localhost:8087/index.html
起初百度之后⼀位是相对路径和绝对路径不正确的问题,就修改了Vue中confid下的index.js,将'/' 修改为带有点'./'的路径
后来发现还是不⾏呐,于是各种办法想着解决
加了⼀个默认的路径,访问/ 或者访问 /index 让其跳转到 index.html
于是想到要⽤模版引擎,就加了thymeleaf,写了⼀个controller⽅法,只要访问根⽬录就⾃动跳转到index.html【此为解决⽅案1,以后上代码】
难道所有的项⽬都要这样去做?
仔细研究后发现,⽹上的教程都是将vue⽣成的⽂件,复制到SpringBoot项⽬下的resource⽬录下的新建⽬录static下,于是依葫芦画瓢,也就是说需要新建⼀个路径static,在static⽬录下放置index.html和static⽬录
妈呀,换了个⽬录,就可以成功访问了~~
难道所有的项⽬都要这样去做?为啥⾮得是static⽬录,我就不能指定⼀个⽬录吗?
当然可以了,在配置⽂件application.properies中添加如下代码即可
现在来讲讲为什么默认的⾮得是static呢?
因为Springboot默认的静态资源⽬录
classpath:/static
classpath:/publicspringboot是啥
classpath:/resources
classpath:/META-INF/resources
难道没有别的⽅式了吗?
有,既然是静态资源,能不能直接放在nginx上呢。可以的【之后再讲】
2. 部署好了,能访问页⾯了,本机啥都是好的,其他机器通过ip和端⼝访问,妈呀,只有页⾯,数据呢
Solution:
这个我不得不在我所有的接⼝前⾯加个api路径~也就是在配置⽂件中添加了⼀个默认访问的前缀~暂时还没有到更好的办法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论