当前位置:   article > 正文

vue3项目打包后整合到springboot项目中运行_springboot打包vue3

springboot打包vue3

概述

一般来说,前后端分离项目,比如vue3+springboot的前后端分离项目,一般把vue3项目打包后部署到nginx或者tomcat上面,springboot项目单独打包。

那如果想把vue3项目打包后直接部署到springboot项目中,如何做那?

VUE3项目

创建vue项目

创建项目

npm init vue@latest

安装依赖

  1. cd 项目名
  2. npm install

启动开发服务器(项目目录)

npm run dev

如果要部署到springboot项目中,打包前要修改vite.config.js文件,如下

添加  base:'./'

  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. // https://vitejs.dev/config/
  5. export default defineConfig({
  6. plugins: [vue()],
  7. resolve: {
  8. alias: {
  9. '@': fileURLToPath(new URL('./src', import.meta.url))
  10. }
  11. },
  12. base:'./'
  13. })

打包vue项目

npm run build

springboot项目

我采用手动搭建springboot项目的方式

创建maven项目

修改pom.xml文件

需要添加的依赖

  1. <!--thymeleaf-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  5. </dependency>
  6. <!--springMVC-->
  7. <dependency>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-web</artifactId>
  10. </dependency>

全部代码

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <parent>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-parent</artifactId>
  9. <version>2.7.8</version>
  10. <relativePath/>
  11. </parent>
  12. <groupId>org.example</groupId>
  13. <artifactId>springboot-demo1</artifactId>
  14. <version>1.0-SNAPSHOT</version>
  15. <dependencies>
  16. <!--thymeleaf-->
  17. <dependency>
  18. <groupId>org.springframework.boot</groupId>
  19. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  20. </dependency>
  21. <!--lombok-->
  22. <dependency>
  23. <groupId>org.projectlombok</groupId>
  24. <artifactId>lombok</artifactId>
  25. <optional>true</optional>
  26. </dependency>
  27. <!--springMVC-->
  28. <dependency>
  29. <groupId>org.springframework.boot</groupId>
  30. <artifactId>spring-boot-starter-web</artifactId>
  31. </dependency>
  32. <!--springBoot起步依赖-->
  33. <dependency>
  34. <groupId>org.springframework.boot</groupId>
  35. <artifactId>spring-boot-starter</artifactId>
  36. </dependency>
  37. <!--test-->
  38. <dependency>
  39. <groupId>org.springframework.boot</groupId>
  40. <artifactId>spring-boot-starter-test</artifactId>
  41. <scope>test</scope>
  42. </dependency>
  43. </dependencies>
  44. </project>

修改application.yml文件

  1. server:
  2. port: 8080
  3. spring:
  4. # 打成jar包必须添加如下配置才能找到页面
  5. thymeleaf:
  6. mode: HTML
  7. cache: false
  8. prefix: classpath:/templates

编写启动类

  1. package jkw;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. @SpringBootApplication
  5. public class Main {
  6. public static void main(String[] args) {
  7. SpringApplication.run(Main.class, args);
  8. }
  9. }

编写跳转控制器

  1. package jkw.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.PathVariable;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. /**
  6. * 页面跳转控制器
  7. */
  8. @Controller
  9. public class PageController {
  10. //后台页面
  11. @RequestMapping("/back/{backPage}")
  12. public String backPage(@PathVariable String backPage) {
  13. return "/back/" + backPage;
  14. }
  15. //前台页面
  16. @RequestMapping("/front/{frontPage}")
  17. public String frontPage(@PathVariable String frontPage) {
  18. return "/front/" + frontPage;
  19. }
  20. }

整合

springboot项目

resources下面创建static和templates两个文件夹,分别存放静态文件和动态页面

连个文件夹中都创建back和front文件,一个是前台,一个是后台

vue项目

把打包好的vue项目中的dist文件中assets和favicon.ico放在static中back

index.html放在templates中back

修改index.html中引入资源的文置,如下

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <link rel="icon" href="/back/favicon.ico">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Vite App</title>
  8. <script type="module" crossorigin src="/back/assets/index-1973819a.js"></script>
  9. <link rel="stylesheet" href="/back/assets/index-4afc3c58.css">
  10. </head>
  11. <body>
  12. <div id="app"></div>
  13. </body>
  14. </html>

启动springboot项目,访问

localhost:8081/back/index

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/567634
推荐阅读
相关标签
  

闽ICP备14008679号