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

2023-11-17

概述

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

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

VUE3项目

创建vue项目

创建项目

npm init vue@latest

安装依赖

cd 项目名

npm install

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

npm run dev

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

添加  base:'./'

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

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

打包vue项目

npm run build

springboot项目

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

创建maven项目

修改pom.xml文件

需要添加的依赖

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

全部代码

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.8</version>
        <relativePath/>
    </parent>

    <groupId>org.example</groupId>
    <artifactId>springboot-demo1</artifactId>
    <version>1.0-SNAPSHOT</version>

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


        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--springMVC-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--springBoot起步依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--test-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>



</project>

修改application.yml文件

server:
  port: 8080

spring:
  # 打成jar包必须添加如下配置才能找到页面
  thymeleaf:
    mode: HTML
    cache: false
    prefix: classpath:/templates

编写启动类

package jkw;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Main {
    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }
}

编写跳转控制器

package jkw.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 页面跳转控制器
 */
@Controller
public class PageController {
    //后台页面
    @RequestMapping("/back/{backPage}")
    public String backPage(@PathVariable String backPage) {
        return "/back/" + backPage;
    }

    //前台页面
    @RequestMapping("/front/{frontPage}")
    public String frontPage(@PathVariable String frontPage) {
        return "/front/" + frontPage;
    }
    
}

整合

springboot项目

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

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

vue项目

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

index.html放在templates中back

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

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

启动springboot项目,访问

localhost:8081/back/index

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue3项目打包后整合到springboot项目中运行 的相关文章

  • MP3:一种以毫秒为单位获取任何给定字节位置的位置的方法?

    我创建了一个 servlet 它返回从客户端请求的任何给定字节位置开始的流 来自 MP3 文件 这允许客户端在任何给定字节位置立即开始播放 而无需进行任何本地查找 现在 我有一个滑块可以直观地显示进度 我正在使用当前字节位置来更新滑块 但是
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • 如何打印整个字符串池?

    我想打印包含文字的整个字符串池String使用添加的对象intern 就在垃圾收集之前 JDK有没有隐式的方法来进行这样的操作 我们如何检查字符串池 EDIT The comment suggests that there may be a
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • Spring Stomp over Websocket:流式传输大文件

    我的SockJs客户端在网页中 发送帧大小为16K的消息 消息大小限制决定了我可以传输的文件的最大大小 以下是我在文档中找到的内容 Configure the maximum size for an incoming sub protoco
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • @EnableTransactionManagement 的范围是什么?

    我试图了解正确的放置位置 EnableTransactionManagement多个 JavaConfig 上下文的情况下的注释 考虑以下场景 我在 JPAConfig java 和 AppConfig java 中有 JPA 配置以及一组
  • 在 Spring Context 加载实际的 Spring Bean 之前是否模拟了模拟 bean (@MockBean)?

    让我们以下面的例子为例 Autowired MockBean private Foo foobar Spring Context 是否加载类Foo首先 然后应用模拟 或者是 Mockbean以某种方式被检测到 Spring 创建并应用模拟而
  • 为什么 ConcurrentHashMap::putIfAbsent 比 ConcurrentHashMap::computeIfAbsent 更快?

    使用 ConcurrentHashMap 我发现computeIfAbsent 比putIfAbsent 慢两倍 这是简单的测试 import java util ArrayList import java util List import
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • struts 教程或示例

    我正在尝试在 Struts 中制作一个登录页面 这个想法是验证用户是否存在等 然后如果有错误 则返回到登录页面 错误显示为红色 典型的登录或任何表单页面验证 我想知道是否有人知道 Struts 中的错误管理教程 我正在专门寻找有关的教程 或
  • 为什么 BufferedWriter 不写入文件?

    我有这个代码 String strings Hi You He They Tetrabenzene Caaorine Calorine File file new File G words txt FileWriter fWriter Bu
  • MongoDB Java 驱动程序:MongoCore 驱动程序与 MongoDB 驱动程序与 MongoDB 异步驱动程序

    MongoDB Java 驱动程序有三种不同的驱动程序选项 核心驱动 MongoDB 驱动程序 MongoDB 异步驱动程序 The 驱动程序描述页面 https docs mongodb org ecosystem drivers jav
  • Spring Boot MSSQL Kerberos 身份验证

    目前在我的春季靴子中application properties文件中 我指定以下行来连接到 MSSql 服务器 spring datasource url jdbc sqlserver localhost databaseName spr
  • Java中有类似分支/跳转表的东西吗?

    Java有类似分支表或跳转表的东西吗 分支表或跳转表是 根据维基百科 http en wikipedia org wiki Branch table 用于描述使用分支指令表将程序控制 分支 转移到程序的另一部分 或可能已动态加载的不同程序

随机推荐

  • MongoDB 核心技术详解

    一 NoSQL 概述 1 NoSQL 简介 NoSQL 全称是 Not Only Sql 指的是非关系型的数据库 这类数据库主要有这些特点 非关系型的 分布式的 开源的 水平可扩展的 原始的目的是为了大规模 web 应用 这场全新的数据库革
  • The breakpoint will not currently be hit. No symbols have been loaded for this document visual studi...

    问题1 环境设置问题 1 确认是在debug模式下运行 2 确认正确的项目设置 链接器 gt 调试 gt 生成调试信息 是 C gt 常规 gt 调试信息格式 Zi or Z7 问题2 当前代码与当前执行的程序不匹配 1 确认运行的是最新生
  • 2023美赛C题-Wordle预测思路及matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信
  • CSS中的弹性布局:flex

    1 flex布局 Flexible Box 1 1 任何一个容器都可以指定为flex布局 可以应用于 块级 元素 也可以用于行内元素 1 2 当父设置flex布局后 子元素的float clear vertical align属性将失效 2
  • 使用pnpm搭建workspace

    前言 上一节中我们使用vite lib打包了组件库 但发现对component调试时很不理想 而pnpm的workspace就是解决这种问题的 开始工作 在core view之上的根目录 建立pnpm workspace yaml 内容如下
  • STM32示波器设计

    目录 前言 1 硬件模块 2 示波器基础知识 2 1 当头一棒就是 波形的概念 2 2 第二就是需要观察的波形参数 2 3 第三就是示波器参数 2 3 1 采样率 2 3 2 带宽 2 3 4 刷新率 3 ADC采集和DAC输出 3 1 A
  • intel外设接口介绍(Intel Arria 10 Hard Processor System Technical Reference Manual)----SPI

    原文链接 https www intel com content www us en docs programmable 683711 21 2 features of the spi controller html 20 1 Featur
  • CSS 初始化 base.css 文件

    公共样式 body h1 h2 h3 h4 h5 h6 form fieldset div dl dt dd ul ol li input button textarea p th td a img strong margin 0px pa
  • antd Upload上传报Uncaught TypeError: items.map is not a function错误

    在写项目的时候 使用到了antd里面的Upload来上传文件 写好之后运行报错 代码是这样的 const uploadProps action createTheURL software stu score upload method PO
  • 如何查看服务器文件读写未释放流,传输管理_查看及释放请求(Requests)

    一套运维的ERP系统 通常由开发 测试 生产等多台服务器组成 测试 生产服务器常规情况是不能进行配置和程序维护 Transaction SCC4 详见 定义客户端 Client 变更是在开发服务器中完成 在开发服务器中 将配置数据和维护程序
  • 在vscode中使用xdebug调试PHP---绝对解决远程xdebug调试不了的问题

    在vscode中使用xdebug调试PHP 绝对解决远程xdebug调试不了的问题 1 vscode插件安装 2 检查并安装php的xdebug扩展 php m 3 修改远程主机上php ini中的xdebug的配置信息 vi php in
  • dubbo_远程同步调用原理

    Dubbo缺省协议采用单一长连接和NIO异步通讯 适合于小数据量大并发的服务调用 以及服务消费者机器数远大于服务提供者机器数的情况 Dubbo缺省协议 使用基于mina1 1 7 hessian3 2 1的tbremoting交互 连接个数
  • 使用 T5 模型来做文本分类任务的一些总结

    文章目录 T5 text2text 模型如何做 text classification 优化器和调度器 optimizer and scheduler 学习率设置 完整训练代码 Reference T5 paper Exploring th
  • Arduino使用TinyML实现水果识别

    在本文中 板载手势传感器将用于收集对象识别数据 这些数据将用于创建TensorFlow Lite模型 该模型可用于识别特定对象 电路板的接近传感器功能将用于识别物体何时靠近电路板 而RGB传感器用于首先收集物体的颜色数据 然后正确识别物体
  • ios开发 上传到App Store 时出错. iTunes Store Operation Failed, An Error occurred uploading to the iTunes ...

    ios开发 上传到App Store 时出错 iTunes Store Operation Failed An Error occurred uploading to the iTunes store 的解决方法 网上找了很多 如下 当然没
  • 玩转ESP8266-01——AT指令集

    该指令集是接上一个 链接 初识AT指令 全部是根据本人在使用esp8266过程中用过的指令 可能有不全 有错误 还请理解指正 一起学习 AT指令集 一 基础指令 1 测试指令 2 复位指令 重启 二 设置指令 1 设置波特率 2 设置工作模
  • 程序员如何做副业可以实现财富自由?

    这几年呢 我做包括自媒体在内的各种副业 也挣了一些钱 更有想象不到的一些收获 最近呢 也有一些朋友问我说晚风怎么样做一些副业 那今天呢 我就给大家分享五点 我认为做副业必须要考虑的问题 1 副业和主业尽量相关 那第一点呢 就是如果你决定做副
  • C++的指针与引用可能并不难,只是你没理解

    目录 复合类型 引用 引用即别名 引用的定义 引用的两种例外情况 指针 获取对象的地址 指针值 利用指针访问对象 某些符号有多重含义 空指针 建议 初始化所有指针 赋值和指针 其他指针操作 void 指针 理解复合类型的声明 定义多个变量
  • 统计学中的方差分析

    文章目录 1 0 方差分析 1 1方差分析概念 1 2 单因素方差分析 1 2 1 单因素方差分析 1 2 2 方差分析基本数语 1 2 3 造成误差的原因 1 3 方差分析的3个假定 1 4 方差分析的步骤 2 0 总结 1 0 方差分析
  • vue3项目打包后整合到springboot项目中运行

    概述 一般来说 前后端分离项目 比如vue3 springboot的前后端分离项目 一般把vue3项目打包后部署到nginx或者tomcat上面 springboot项目单独打包 那如果想把vue3项目打包后直接部署到springboot项