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

SpringBoot+Vue項(xiàng)目打包部署完整步驟教程

 更新時(shí)間:2024年10月12日 09:53:14   作者:JackYanZhang  
這篇文章主要介紹了SpringBoot+Vue項(xiàng)目打包部署的相關(guān)資料,包括Vue項(xiàng)目的打包設(shè)置、SpringBoot的配置修改、跨域問(wèn)題處理、使用Nginx配置反向代理以及最終的項(xiàng)目啟動(dòng),教程假定開(kāi)發(fā)者已具備完整的前后端分離項(xiàng)目和配置好環(huán)境的服務(wù)器,需要的朋友可以參考下

前言

本教程旨在幫助開(kāi)發(fā)者,完成基于springboot后端項(xiàng)目和基于vue前端項(xiàng)目的打包以及服務(wù)器部署。本教程的前提是開(kāi)發(fā)者已經(jīng)擁有一個(gè)完整的springboot+vue的前后端分離的項(xiàng)目,以及一臺(tái)配置好JDK和MySQL以及nginx的環(huán)境的云服務(wù)器。目標(biāo)是能夠?qū)㈨?xiàng)目部署到云服務(wù)器上,并通過(guò)云服務(wù)器的IP訪問(wèn)項(xiàng)目。

一.Vue前端項(xiàng)目打包

在VSCode中打開(kāi)前端項(xiàng)目的文件夾,編輯vue.config.js配置文件,添加以下代碼塊:

module.exports = {
  publicPath: "/",
  assetsDir: "static",
  outputDir: 'dist',
}

如圖所示:

注:publicPath的設(shè)置會(huì)影響到應(yīng)用在部署環(huán)境中的運(yùn)行情況,特別是在處理動(dòng)態(tài)路由時(shí)可能會(huì)出現(xiàn)問(wèn)題。如果你設(shè)置 publicPath 為 ./,它會(huì)被解釋為當(dāng)前路徑,這在大多數(shù)情況下是沒(méi)有問(wèn)題的,但在某些服務(wù)器配置如(Nginx)中,可能會(huì)導(dǎo)致路由解析錯(cuò)誤,尤其是對(duì)于動(dòng)態(tài)路由的情況。所以本教程中的pulicPath設(shè)置為''/''。

然后將request.js中的baseURL的localhost設(shè)置為服務(wù)器的IP,以便保證后續(xù)項(xiàng)目部署前后端的對(duì)接。否則后續(xù)部署到服務(wù)器上可能會(huì)出現(xiàn):前后端對(duì)接不上,前端頁(yè)面無(wú)數(shù)據(jù)顯示的情況。

打開(kāi)終端(注意:這里需要新建一個(gè)終端窗口,而不是在當(dāng)前的窗口,否則之前所做的更改均無(wú)效),輸入npm run build命令執(zhí)行打包,打包結(jié)束后當(dāng)前目錄會(huì)出現(xiàn)一個(gè)dist文件夾,即為打包后的前端項(xiàng)目。

二.SpringBoot后端項(xiàng)目打包

用IDEA打開(kāi)后端項(xiàng)目,編輯application.yaml或者application.properties配置文件,將數(shù)據(jù)庫(kù)連接的IP由localhost改為服務(wù)器的數(shù)據(jù)庫(kù)IP。(前提:服務(wù)器上有對(duì)應(yīng)的數(shù)據(jù)庫(kù)環(huán)境和對(duì)應(yīng)項(xiàng)目的數(shù)據(jù)庫(kù),并且關(guān)閉了防火墻,能夠在本地訪問(wèn))

打開(kāi)后端項(xiàng)目的跨域配置文件,將localhost改為服務(wù)器的IP,以便項(xiàng)目部署到服務(wù)器后,允許前端項(xiàng)目8080端口能夠向后端項(xiàng)目的8081端口發(fā)送數(shù)據(jù)請(qǐng)求。(本教程前端項(xiàng)目占用8080端口,后端項(xiàng)目占用8081端口)

如果項(xiàng)目中有單元測(cè)試的代碼,記得注釋掉,否則可能會(huì)打包失敗。

完成了以上配置,即可執(zhí)行打包( 如果要重新打包,建議在每次打包前,先輸入mvn clean 清除已有的打包文件)。在IDEA中新開(kāi)一個(gè)終端窗口,輸入命令:

mvn package

打包成功后,項(xiàng)目目錄中會(huì)新增一個(gè)target文件夾,其中.jar結(jié)尾的文件即為打包成功后的項(xiàng)目包。

進(jìn)入target目錄,輸入命令:

java -jar yuedong-0.0.1-SNAPSHOT.jar

即可啟動(dòng)項(xiàng)目。

三.項(xiàng)目部署

前后端項(xiàng)目打包完成后,現(xiàn)在需要將項(xiàng)目部署到云服務(wù)器上。首先打開(kāi)WinSCP,連接云服務(wù)器。將前端項(xiàng)目打包的dist文件夾和后端項(xiàng)目打包后的yuedong-0.0.1-SNAPSHOT.jar包上傳到服務(wù)器上對(duì)應(yīng)的目錄中(本教程事先在服務(wù)器的/opt目錄中新建了名為yuedong的項(xiàng)目文件夾,里面的front和backend目錄下分別存放前后端的打包文件)。

打開(kāi)Xshell,連接上云服務(wù)器,輸入命令:

vim /etc/nginx/nginx.conf

編輯nginx.conf配置文件(這里需要首先在服務(wù)器上安裝nginx,如果未安裝,請(qǐng)先輸入命令:sudo apt install nginx或者sudo yum install nginx,根據(jù)自己的服務(wù)器的操作系統(tǒng)去安裝),配置如下(本教程的nginx配置可能比較簡(jiǎn)單,更復(fù)雜專業(yè)的配置,讀者可查閱nginx的教程文檔或者其他博客,本教程追求最簡(jiǎn)單可行的配置方式):

events {}

http {
    server {
        listen 8080;
        server_name localhost;
        root /opt/yuedong/front/dist;
        index index.html ;
        location / {
            root /opt/yuedong/front/dist;
            try_files $uri $uri/ /index.html; 
            expires 30d;
        }
     }
}

讀者根據(jù)自己的項(xiàng)目端口,和dist文件夾目錄自行更改以上配置。編輯完后輸入 :wq保存退出,然后輸入以下命令重啟nginx服務(wù)(本教程中,服務(wù)器的nginx是已經(jīng)開(kāi)啟了的,如果首次啟動(dòng)請(qǐng)輸入:sudo systemctl start nginx):

nginx -s reload

配置成功后,現(xiàn)在打開(kāi)瀏覽器,輸入服務(wù)器的公網(wǎng)IP以及端口(本教程是8080),可以看到項(xiàng)目的前端頁(yè)面?,F(xiàn)在部署成功了一半,由于是前后端分離,前端只有靜態(tài)的頁(yè)面,并沒(méi)有數(shù)據(jù)。接下來(lái)得在服務(wù)器中啟動(dòng)我們剛剛上傳的后端項(xiàng)目jar包,開(kāi)啟后端服務(wù)。

 打開(kāi)Xshell,進(jìn)入到存放后端jar包的目錄下,輸入以下命令開(kāi)啟后端服務(wù):

nohup java -jar yuedong-0.0.1-SNAPSHOT.jar &

注:java -jar yuedong-0.0.1-SNAPSHOT.jar這條命令也會(huì)啟動(dòng) Java 應(yīng)用程序,但它會(huì)在當(dāng)前終端窗口占用并顯示輸出。如果你關(guān)閉終端或者按下 Ctrl+C 終止命令,Java 程序也會(huì)隨之停止。nohup java -jar yuedong-0.0.1-SNAPSHOT.jar &nohup 命令用于忽略信號(hào),允許程序在后臺(tái)繼續(xù)運(yùn)行。& 符號(hào)將該命令放到后臺(tái)執(zhí)行,不阻塞當(dāng)前終端。這樣做可以讓 Java 程序在后臺(tái)持續(xù)運(yùn)行,即使你關(guān)閉了終端窗口或退出了登錄會(huì)話。

開(kāi)啟后端服務(wù)后,再次刷新瀏覽器的頁(yè)面,可以看到前端頁(yè)面有數(shù)據(jù)出現(xiàn)了。

至此,項(xiàng)目打包部署完成!

總結(jié)

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

相關(guān)文章

  • Java 8 Stream操作類型及peek示例解析

    Java 8 Stream操作類型及peek示例解析

    這篇文章主要介紹了Java 8 Stream操作類型及peek示例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot如何通過(guò)webjars管理靜態(tài)資源文件夾

    SpringBoot如何通過(guò)webjars管理靜態(tài)資源文件夾

    這篇文章主要介紹了SpringBoot如何通過(guò)webjars管理靜態(tài)資源文件夾,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • MyBatis一對(duì)一級(jí)聯(lián)更新問(wèn)題小結(jié)

    MyBatis一對(duì)一級(jí)聯(lián)更新問(wèn)題小結(jié)

    日常工作中經(jīng)常會(huì)涉及到一對(duì)一級(jí)聯(lián)更新的問(wèn)題,本文主要介紹了MyBatis一對(duì)一級(jí)聯(lián)更新問(wèn)題小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Java中的DelayQueue實(shí)現(xiàn)原理及應(yīng)用場(chǎng)景詳解

    Java中的DelayQueue實(shí)現(xiàn)原理及應(yīng)用場(chǎng)景詳解

    這篇文章主要介紹了Java中的DelayQueue實(shí)現(xiàn)原理及應(yīng)用場(chǎng)景詳解,DelayQueue是一個(gè)沒(méi)有邊界BlockingQueue實(shí)現(xiàn),加入其中的元素必需實(shí)現(xiàn)Delayed接口,當(dāng)生產(chǎn)者線程調(diào)用put之類的方法加入元素時(shí),會(huì)觸發(fā)Delayed接口中的compareTo方法進(jìn)行排序,需要的朋友可以參考下
    2023-12-12
  • SpringBoot集成MyBatis的多種方式

    SpringBoot集成MyBatis的多種方式

    本文深入解析了Spring Boot集成MyBatis的多種方式,包括XML配置、注解配置以及MyBatis的動(dòng)態(tài)SQL等,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Java如何優(yōu)雅關(guān)閉異步中的ExecutorService

    Java如何優(yōu)雅關(guān)閉異步中的ExecutorService

    在并發(fā)編程領(lǐng)域,Java的ExecutorService是線程池管理的關(guān)鍵接口,這篇文章主要為大家介紹了如何優(yōu)雅關(guān)閉異步中的ExecutorService,需要的可以了解下
    2025-02-02
  • springboot集成nacos讀取nacos配置數(shù)據(jù)的原理

    springboot集成nacos讀取nacos配置數(shù)據(jù)的原理

    這篇文章主要介紹了springboot集成nacos讀取nacos配置數(shù)據(jù)的原理,文中有詳細(xì)的代碼流程,對(duì)大家學(xué)習(xí)springboot集成nacos有一定的幫助,需要的朋友可以參考下
    2023-05-05
  • Spring?myBatis數(shù)據(jù)庫(kù)連接異常問(wèn)題及解決

    Spring?myBatis數(shù)據(jù)庫(kù)連接異常問(wèn)題及解決

    這篇文章主要介紹了Spring?myBatis數(shù)據(jù)庫(kù)連接異常問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Spring Data JPA調(diào)用存儲(chǔ)過(guò)程實(shí)例代碼

    Spring Data JPA調(diào)用存儲(chǔ)過(guò)程實(shí)例代碼

    本篇文章主要介紹了Spring Data JPA調(diào)用存儲(chǔ)過(guò)程實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • Java I/O流實(shí)例之簡(jiǎn)歷替換

    Java I/O流實(shí)例之簡(jiǎn)歷替換

    流是一種抽象概念,它代表了數(shù)據(jù)的無(wú)結(jié)構(gòu)化傳遞。。用來(lái)進(jìn)行輸入輸出操作的流就稱為IO流。換句話說(shuō),IO流就是以流的方式進(jìn)行輸入輸出
    2021-09-09

最新評(píng)論

江孜县| 丰镇市| 上杭县| 武川县| 金门县| 昌图县| 南陵县| 华蓥市| 玉林市| 桦南县| 偏关县| 红桥区| 黄平县| 上虞市| 内江市| 伊金霍洛旗| 泰州市| 灵寿县| 隆回县| 肃宁县| 无为县| 无锡市| 福贡县| 阿拉善右旗| 佳木斯市| 佳木斯市| 屏东县| 镇平县| 石泉县| 兰坪| 桐乡市| 文登市| 永寿县| 九龙城区| 太和县| 渭南市| 利津县| 棋牌| 大宁县| 澄江县| 衡东县|