最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

將vue3項(xiàng)目打包后部署在springboot項(xiàng)目運(yùn)行圖文教程

 更新時(shí)間:2025年11月28日 10:36:53   作者:K***7284  
這篇文章主要介紹了將vue3項(xiàng)目打包后部署在springboot項(xiàng)目運(yùn)行的相關(guān)資料,文中通過代碼及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前端vite打包

vite 打包路徑配置

在 vite.config.js(.ts) 設(shè)置開發(fā)或生產(chǎn)環(huán)境服務(wù)的公共基礎(chǔ)路徑(base配置項(xiàng)),這里不使用相對(duì)路徑

// vite.config.ts
export default defineConfig({
    plugins: [vue()],
    base:'/', // 設(shè)置項(xiàng)目的基礎(chǔ)路徑
    resolve:{
        alias: [
            {
                find: '@',
                replacement: path.resolve(__dirname, 'src')
            }
        ]
    },
    server: {
        host: '0.0.0.0',
        proxy: {
            '/api': {
                target: 'http://localhost:8080', // 設(shè)置代理目標(biāo)
                changeOrigin: true,
                rewrite: (path) => path.replace(/^/api/, '')
            }
        }
    }

})

打包命令(可選)

如果是 TS 項(xiàng)目,可以在打包命令后加上 --noEmit,防止打包后生成大量 map 文件。

// package.json
"scripts": {
    "dev": "vite --open",
    "build": "vue-tsc --noEmit && vite build",
    "preview": "vite preview"
  }

執(zhí)行打包

執(zhí)行 vscode 左下角配置好的 build 腳本

打包后在根目錄下可以看到生成的 dist 文件

后端springboot配置

靜態(tài)資源路徑配置(可選)

在 application.yml(.properties) 中配置 Web 靜態(tài)資源路徑,指定為 static

spring:
        web:
            resources:
                static-locations: classpath:/static/

thymeleaf依賴

在 pom.xml 中加入 thymeleaf 模板的依賴并刷新 maven

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

轉(zhuǎn)移打包文件

將前端打包好的dist文件夾中的內(nèi)容復(fù)制到后端的 resource/static 中,新建 resource/templates 文件夾,將 index.html 放入 templates 中

請求返回html文件

新建一個(gè)控制器類,直接訪問本地8080端口時(shí)返回 index.html。由于項(xiàng)目中有 thymeleaf 模板依賴,“index” 就是 template 中的 index.html

// BasicController.java
@Controller
public class BasicController {
    // http://127.0.0.1:8080/
    @RequestMapping("/")
    public String html(){
        return "index";
    }

}

如果前端項(xiàng)目的 vue-router 使用的是歷史模式(如下圖)

歷史模式

服務(wù)端需要增加一個(gè)覆蓋所有情況的候選資源:如果 URL 匹配不到任何靜態(tài)資源,則應(yīng)該返回同一個(gè)index.html頁面,這個(gè)頁面就是你 app 依賴的頁面。

// BasicController.java
@Controller
public class BasicController {
    // http://127.0.0.1:8080/
    @RequestMapping("/")
    public String html(){
        return "index";
    }
    // 捕獲所有未匹配路徑并重定向到 index.html
    @GetMapping("/**/{path:[^\.]*}") // 不匹配帶"."的路徑(如 .js/.css 等靜態(tài)資源)
    public String redirect() {
        return "forward:/";
    }
}

啟動(dòng)項(xiàng)目

啟動(dòng) springboot 項(xiàng)目,瀏覽器地址欄輸入http://127.0.0.1:8080回車可以看到前端頁面

可能遇到的問題

頁面一刷新就404

檢查前端的 vue-router 使用歷史模式還是哈希模式,歷史模式(HTML5 模式)需要后端額外配置,配置參考上文。
https://router.vuejs.org/zh/guide/essentials/history-mode.html

頁面空白

可能是 js 和 css 文件沒有引入成功,查看 f12 網(wǎng)絡(luò)

檢查 index.html ,查看 script 和 link 標(biāo)簽的地址,應(yīng)該是絕對(duì)路徑(不含./)

頁面沒有數(shù)據(jù)

查看 f12 網(wǎng)絡(luò),檢查請求路徑有沒有錯(cuò)誤,是否存在跨域問題。檢查后端有沒有配置請求攔截器或者spring security進(jìn)行排除。

總結(jié)

到此這篇關(guān)于將vue3項(xiàng)目打包后部署在springboot項(xiàng)目運(yùn)行的文章就介紹到這了,更多相關(guān)vue3打包后部署springboot項(xiàng)目運(yùn)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

庆云县| 龙州县| 五寨县| 桓台县| 舞阳县| 五指山市| 太和县| 岚皋县| 大厂| 满城县| 东安县| 宜城市| 金门县| 广饶县| 大安市| 二连浩特市| 富蕴县| 开原市| 吉安市| 通榆县| 阳城县| 长顺县| 长沙市| 台安县| 克拉玛依市| 巴南区| 旌德县| 读书| 洞口县| 庆安县| 鲁甸县| 张家界市| 友谊县| 大兴区| 庆云县| 大理市| 瑞丽市| 黄骅市| 招远市| 南郑县| 柏乡县|