vue打包部署到springboot中,看这篇就够了

2024-07-11 1624阅读

如果不清楚springboot中的static和templates目录可以看这篇

vue打包部署到springboot中,看这篇就够了
(图片来源网络,侵删)

static和templates目录

1、问题

vue打包后部署到springboot中访问,毕竟前后端分离部署的时候要分开,多了一个服务,可以将vue打包后放在springboot中的static目录下,网上类似的博文很多,部署的时候遇到几个细节问题,如下都会一一列举出来,希望对你有帮助。

2、vue打包

vue打包部署到springboot中,路由中的mode要设置成 hash

// vue打包部署到springboot中,这里的mode需要改成 hash
export default new Router({
  mode: 'hash',
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
})

3、打包后的内容放哪里?

一般项目打包后的目录都在dist目录下, 包含static目录和一个index.html文件。

第一种

将static目录和index.html文件都放在springboot中的resources目录下;

第二种

如果不想用默认static目录,可以自己新建一个目录,注意要改配置文件,告诉springboot你的静态目录是什么。

spring.web.resources.static-locations = classpath:/staticxxx/

4、访问

第一种

直接访问静态文件:ip:port/index.html

第二种

带个.html看着不太好,那就先进controller,转发到index.html

ip:port/index

@GetMapping("/index")
public String index() {
    return "forward:/index.html";
}

如果使用了security,注意放开静态资源权限,不然会404。

5、多个项目怎么部署

如果共用一个接口,但前端是好几个项目,都想打包扔到springboot中访问。

比如有shop项目,有user项目。

在springboot中的static目录下建两个文件夹,shop和user;各自的文件夹下放各自前端项目的包, 如果用进controller再转发的方式访问,注意 RequestMapping(“shop”) ,这里的shop和static下的shop名字要一直,不然转发后会提示404找不到静态资源,这个和转发的原理有关。

如下:

ip:port/shop/index

shop目录
RequestMapping("/shop")
@GetMapping("/index")
public String index() {
   return "forward:/shop/index.html";
}

ip:port/user/index

user目录
RequestMapping("/user")
@GetMapping("/index")
public String index() {
   return "forward:/user/index.html";
}

spring.web.resources.static-locations这个配置可以配置多个静态目录,上面这种情况是不是可以在resources下直接新建shop和user目录,然后把他们都标识成静态,这种方式没试,空了在研究研究。

感谢你阅读到这里,希望上面的内容对你有帮助!欢迎交流!

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]