Vue3打包部署到SpringBoot3的详细步骤

 更新时间:2025年10月31日 09:02:46   作者:2403_89965163  
在Vue3项目中,打包指令主要用于将项目编译成可以在生产环境中部署的静态文件,这篇文章主要介绍了Vue3打包部署到SpringBoot3的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

Vue3项目

1.先在vite.config.js中添加 base: './'

export default defineConfig({
  base: './',
  plugins: [
    vue(),
    vueDevTools(),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

在vite官网中是这样说的:

简单来说就是:使用相对路径,可以让项目能在任意路径下部署,无需提前固定公共基础路径,解决了部署环境不确定的问题。

具体可以通过Vite官网来查看:构建生产版本 | Vite 官方中文文档

2.如果设置了用同一接口前缀用来修改请求路径的端口号的话,要进行删除或注释

const baseUrl='/api';
const instance = axios.create({baseURL:baseUrl});
//这里我设置了统一接口前缀/api,可以直接注释了
server: {
    proxy: {
      '/api': {//处理以api为前缀的请求    
        target: 'http://localhost:8081',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  }

这是因为在Vite的官网上说了,这么一句话,Configure custom proxy rules for the dev server,他翻译过来就是:为开发服务器配置自定义代理规则。

server.proxy 属于 开发服务器(dev server) 的配置项,用于 “在开发环境下配置代理规则,以解决跨域请求问题”。所以当不删除的话,修改端口不起作用,但是api却加再了请求路径上,导致,访问不到,而报404.

具体可看Vite官网的这个位置:https://vite.dev/config/server-options.html#server-proxy

3.配置路由模式

import { createRouter, createWebHashHistory } from 'vue-router'

建议使用Hash模式,因为:他不需要再服务器层面上进行任何特殊处理。

虽然hash模式访问请求,输入URL会在URL中加入#,但是

  • 访问 /sign 时,实际 URL 是 http://xxx.com/#/sign
  • 访问 /addUser 时,实际 URL 是 http://xxx.com/#/addUser

这里的关键是:# 及其后面的内容(如 #/sign)不会被发送到服务器。服务器收到的请求始终是根路径 /,因此就能返回 index.html,使用了history模式的路由需要再SpringBoot上对每个页面的路径进行对应的配置,但是使用hash模式,在SpringBoot中只用配置/根路径

hash模式官网:https://router.vuejs.org/zh/guide/essentials/history-mode.html#Hash-%E6%A8%A1%E5%BC%8F

HTML5模式官网:

https://router.vuejs.org/zh/guide/essentials/history-mode.html#HTML5-%E6%A8%A1%E5%BC%8F

4.将vue打包

npm run build

打包完成后会生成dist文件夹

SpringBoot3项目

1.在pom.xml文件中添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2.将vue打包的vite文件里面的文件整合到SpringBoot中

将ideax.html放到resources的templates下

其他的文件都放到static下

3.检查index.html

index.html的作用:index.html 是前端应用的唯一入口文件,所有页面的渲染、资源加载和路由跳转都依赖它来启动,是连接静态资源与浏览器运行环境的核心桥梁。

<script type="module" crossorigin src="./assets/index-6G-g-WH_.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-BgquJFG5.css" rel="external nofollow" >

在index.html中检查,访问js和css的文件路径是否正确,如果不正确,访问不到css或js,就会报出404错误

4.编写跳转控制器

作用:接受/根路径并跳转到index.html

@Controller
public class BasicController {
    @GetMapping("/")
    public String Index() {
        return "index";
    }
}

结合上述路由中hash模式的特点,# 及其后面的内容(如 #/sign)不会被发送到服务器,让前端的请求路径全都可以到index.html

5.401报错

如果出现401报错,就请仔细查看是否是自己的拦截器是否拦截了

"static/**",        //静态资源的路径
"/",        //访问index.html的根路径

"/index.html",     

或则也有可能是其他的路径被拦截,导致无法正常访问,而报出401

访问

因为我这里用的是hash模式的路由,所以访问时要在端口或域名后面加/#

http:localhost:端口号/#/path

我的这篇文章只能用作参考,具体问题,还要看具体情况

总结

到此这篇关于Vue3打包部署到SpringBoot3的文章就介绍到这了,更多相关Vue3打包部署SpringBoot3内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中StopWatch的使用示例详解

    Java中StopWatch的使用示例详解

    stopWatch 是org.springframework.util 包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍了Java中StopWatch的使用详解,需要的朋友可以参考下
    2025-04-04
  • springboot实现拦截器的3种方式及异步执行的思考

    springboot实现拦截器的3种方式及异步执行的思考

    实际项目中,我们经常需要输出请求参数,响应结果,方法耗时,统一的权限校验等。本文首先为大家介绍 HTTP 请求中三种常见的拦截实现,并且比较一下其中的差异。感兴趣的可以了解一下
    2021-07-07
  • Java实现等待所有子线程结束后再执行一段代码的方法

    Java实现等待所有子线程结束后再执行一段代码的方法

    这篇文章主要介绍了Java实现等待所有子线程结束后再执行一段代码的方法,涉及java多线程的线程等待与执行等相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • SpringBoot实现不同用户不同访问权限的示例代码

    SpringBoot实现不同用户不同访问权限的示例代码

    这篇文章主要介绍了在SpringBoot中使用SpringSecurity实现基于角色的权限控制,涵盖依赖添加、数据库设计、实体类与Repository接口、UserDetailsService实现、安全配置、控制器创建及测试数据准备,并提及@PreAuthorize注解与角色继承配置,需要的朋友可以参考下
    2025-07-07
  • Java 枚举的基本使用方法及实际使用场景

    Java 枚举的基本使用方法及实际使用场景

    枚举是 Java 中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Java 枚举的用法及实际使用场景,感兴趣的朋友一起看看吧
    2025-06-06
  • springcloud项目占用内存好几个G导致服务器崩溃的问题

    springcloud项目占用内存好几个G导致服务器崩溃的问题

    这篇文章主要介绍了springcloud项目占用内存好几个G导致服务器崩溃的问题,本文给大家分享解决方案供大家参考,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Spring Boot如何动态创建Bean示例代码

    Spring Boot如何动态创建Bean示例代码

    这篇文章主要给大家介绍了关于Spring Boot如何动态创建Bean的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • Gradle在国内配置镜像加速的实现步骤

    Gradle在国内配置镜像加速的实现步骤

    在国内使用 Gradle 构建项目时,最大的痛点就是 依赖下载贼慢,甚至卡死,下面教你如何 配置国内镜像加速 Gradle 下载依赖,主要是通过改写 repositories 中的源地址来实现,亲测有效,需要的朋友可以参考下
    2025-05-05
  • springboot 使用yml配置文件自定义属性的操作代码

    springboot 使用yml配置文件自定义属性的操作代码

    在SpringBoot中yml/yaml文件可以自定义一些属性,以供注入给自定义bean对象的属性,主要通过空格和层次来实现,类似于python代码,本文通过实例代码给大家介绍springboot 使用yml配置文件自定义属性,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • Java spring事务及事务不生效的原因详解

    Java spring事务及事务不生效的原因详解

    在日常编码过程中常常涉及到事务,在前两天看到一篇文章提到了Spring事务,那么在此总结下在Spring环境下事务失效的几种原因
    2021-09-09

最新评论