Vue3打包部署到SpringBoot3的詳細(xì)步驟
Vue3項(xiàng)目
1.先在vite.config.js中添加 base: './'
export default defineConfig({
base: './',
plugins: [
vue(),
vueDevTools(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
})在vite官網(wǎng)中是這樣說的:

簡單來說就是:使用相對路徑,可以讓項(xiàng)目能在任意路徑下部署,無需提前固定公共基礎(chǔ)路徑,解決了部署環(huán)境不確定的問題。
具體可以通過Vite官網(wǎng)來查看:構(gòu)建生產(chǎn)版本 | Vite 官方中文文檔
2.如果設(shè)置了用同一接口前綴用來修改請求路徑的端口號的話,要進(jìn)行刪除或注釋
const baseUrl='/api';
const instance = axios.create({baseURL:baseUrl});
//這里我設(shè)置了統(tǒng)一接口前綴/api,可以直接注釋了server: {
proxy: {
'/api': {//處理以api為前綴的請求
target: 'http://localhost:8081',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
}
}
}這是因?yàn)樵赩ite的官網(wǎng)上說了,這么一句話,Configure custom proxy rules for the dev server,他翻譯過來就是:為開發(fā)服務(wù)器配置自定義代理規(guī)則。

即server.proxy 屬于 開發(fā)服務(wù)器(dev server) 的配置項(xiàng),用于 “在開發(fā)環(huán)境下配置代理規(guī)則,以解決跨域請求問題”。所以當(dāng)不刪除的話,修改端口不起作用,但是api卻加再了請求路徑上,導(dǎo)致,訪問不到,而報(bào)404.
具體可看Vite官網(wǎng)的這個位置:https://vite.dev/config/server-options.html#server-proxy
3.配置路由模式
import { createRouter, createWebHashHistory } from 'vue-router'這建議使用Hash模式,因?yàn)椋核恍枰俜?wù)器層面上進(jìn)行任何特殊處理。

雖然hash模式訪問請求,輸入U(xiǎn)RL會在URL中加入#,但是
- 訪問
/sign時,實(shí)際 URL 是http://xxx.com/#/sign - 訪問
/addUser時,實(shí)際 URL 是http://xxx.com/#/addUser
這里的關(guān)鍵是:# 及其后面的內(nèi)容(如 #/sign)不會被發(fā)送到服務(wù)器。服務(wù)器收到的請求始終是根路徑 /,因此就能返回 index.html,使用了history模式的路由需要再SpringBoot上對每個頁面的路徑進(jìn)行對應(yīng)的配置,但是使用hash模式,在SpringBoot中只用配置/根路徑
hash模式官網(wǎng):https://router.vuejs.org/zh/guide/essentials/history-mode.html#Hash-%E6%A8%A1%E5%BC%8F
HTML5模式官網(wǎng):
https://router.vuejs.org/zh/guide/essentials/history-mode.html#HTML5-%E6%A8%A1%E5%BC%8F
4.將vue打包
npm run build
打包完成后會生成dist文件夾
SpringBoot3項(xiàng)目
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 是前端應(yīng)用的唯一入口文件,所有頁面的渲染、資源加載和路由跳轉(zhuǎn)都依賴它來啟動,是連接靜態(tài)資源與瀏覽器運(yùn)行環(huán)境的核心橋梁。
<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,就會報(bào)出404錯誤
4.編寫跳轉(zhuǎn)控制器
作用:接受/根路徑并跳轉(zhuǎn)到index.html
@Controller
public class BasicController {
@GetMapping("/")
public String Index() {
return "index";
}
}結(jié)合上述路由中hash模式的特點(diǎn),# 及其后面的內(nèi)容(如 #/sign)不會被發(fā)送到服務(wù)器,讓前端的請求路徑全都可以到index.html
5.401報(bào)錯
如果出現(xiàn)401報(bào)錯,就請仔細(xì)查看是否是自己的攔截器是否攔截了
"static/**", //靜態(tài)資源的路徑 "/", //訪問index.html的根路徑 "/index.html",
或則也有可能是其他的路徑被攔截,導(dǎo)致無法正常訪問,而報(bào)出401
訪問
因?yàn)槲疫@里用的是hash模式的路由,所以訪問時要在端口或域名后面加/#
http:localhost:端口號/#/path
我的這篇文章只能用作參考,具體問題,還要看具體情況
總結(jié)
到此這篇關(guān)于Vue3打包部署到SpringBoot3的文章就介紹到這了,更多相關(guān)Vue3打包部署SpringBoot3內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot實(shí)現(xiàn)攔截器的3種方式及異步執(zhí)行的思考
實(shí)際項(xiàng)目中,我們經(jīng)常需要輸出請求參數(shù),響應(yīng)結(jié)果,方法耗時,統(tǒng)一的權(quán)限校驗(yàn)等。本文首先為大家介紹 HTTP 請求中三種常見的攔截實(shí)現(xiàn),并且比較一下其中的差異。感興趣的可以了解一下2021-07-07
Java實(shí)現(xiàn)等待所有子線程結(jié)束后再執(zhí)行一段代碼的方法
這篇文章主要介紹了Java實(shí)現(xiàn)等待所有子線程結(jié)束后再執(zhí)行一段代碼的方法,涉及java多線程的線程等待與執(zhí)行等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
SpringBoot實(shí)現(xiàn)不同用戶不同訪問權(quán)限的示例代碼
這篇文章主要介紹了在SpringBoot中使用SpringSecurity實(shí)現(xiàn)基于角色的權(quán)限控制,涵蓋依賴添加、數(shù)據(jù)庫設(shè)計(jì)、實(shí)體類與Repository接口、UserDetailsService實(shí)現(xiàn)、安全配置、控制器創(chuàng)建及測試數(shù)據(jù)準(zhǔn)備,并提及@PreAuthorize注解與角色繼承配置,需要的朋友可以參考下2025-07-07
springcloud項(xiàng)目占用內(nèi)存好幾個G導(dǎo)致服務(wù)器崩潰的問題
這篇文章主要介紹了springcloud項(xiàng)目占用內(nèi)存好幾個G導(dǎo)致服務(wù)器崩潰的問題,本文給大家分享解決方案供大家參考,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
Spring Boot如何動態(tài)創(chuàng)建Bean示例代碼
這篇文章主要給大家介紹了關(guān)于Spring Boot如何動態(tài)創(chuàng)建Bean的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Gradle在國內(nèi)配置鏡像加速的實(shí)現(xiàn)步驟
在國內(nèi)使用 Gradle 構(gòu)建項(xiàng)目時,最大的痛點(diǎn)就是 依賴下載賊慢,甚至卡死,下面教你如何 配置國內(nèi)鏡像加速 Gradle 下載依賴,主要是通過改寫 repositories 中的源地址來實(shí)現(xiàn),親測有效,需要的朋友可以參考下2025-05-05
springboot 使用yml配置文件自定義屬性的操作代碼
在SpringBoot中yml/yaml文件可以自定義一些屬性,以供注入給自定義bean對象的屬性,主要通過空格和層次來實(shí)現(xiàn),類似于python代碼,本文通過實(shí)例代碼給大家介紹springboot 使用yml配置文件自定義屬性,感興趣的朋友跟隨小編一起看看吧2024-03-03
Java spring事務(wù)及事務(wù)不生效的原因詳解
在日常編碼過程中常常涉及到事務(wù),在前兩天看到一篇文章提到了Spring事務(wù),那么在此總結(jié)下在Spring環(huán)境下事務(wù)失效的幾種原因2021-09-09

