通過內網穿透免費部署我們的springboot+vue項目 實現跟服務器一樣的效果

前文講到通過內網穿透能夠實現遠程訪問個人電腦的靜態資源。本文將講解通過內網穿透實現遠程訪問本地的項目,實現跟部署到服務器一樣的效果:前文鏈接:通過內網穿透實現遠程訪問個人電腦資源詳細過程(免費)(NatApp + Tomcat)-CSDN博客

如果遇到tomcat啟動閃退問題可以查看博主的:Tomcat 啟動閃退問題-CSDN博客

目錄

前言

1. 后端SpringBoot項目

1.1 將springboot項目打成war包

?1.2 部署到本地的tomcat

2.1 打包Vue項目并完成內網穿透


前言

? ? ? ??既然能夠通過內網穿透訪問到本地的靜態資源,那么就能夠通過內網穿透訪問到本地的運行的項目。

?友情提示:最好看一下之前的文章:通過內網穿透實現遠程訪問個人電腦資源詳細過程(免費)(NatApp + Tomcat)-CSDN博客

1. 后端SpringBoot項目

1.1 將springboot項目打成war包

? ? ? ? 在打包之前要對我們的pom.xml文件進行修改,首先要設置打包格式,設置成war,因為默認是打成jar包

<packaging>war</packaging>

? ? ? ? 之后要移除springboot自帶的tomcat容器,因為后續是使用到外部的tomcat容器(注意:我們移除之后springboot項目就不能夠正常啟動了,所以我們必須要注視掉才能正常啟動,打包的時候在取消注釋)

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
<!--            移除自帶的tomcat--><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency>

? ? ? ? 因為我們移除了tomcat容器會少一個servlet-api的一個依賴,所以我們必須引入以下

<!--        移除tomcat容器會缺少servlet依賴--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><scope>provided</scope></dependency>

? ? ? ? 接下來還需要對我們的主要啟動類進行修改

@SpringBootApplication
public class Application extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(Application.class);}public static void main(String[] args) {SpringApplication.run(Application.class,args);}
}

????????

? ? ? ? 接下來就來到了打包環節,點擊右側的maven選項,選擇lifecycle,點擊clean(清除target),完成之后在點擊install(確認依賴成功下載),最后點擊package(打包)

?

?1.2 部署到本地的tomcat

????????找到我們的war包,將其復制到tomcat的webapps目錄下

? ? ? ? 可以對war進行一個重命名,可以命名短一點,我這里重命名為light,然后將其解壓。解壓之后light目錄結構如下:

? ? ? ? 解壓之后就可以刪除war包了。

????????我們接下來進行測試,查看通過tomcat能否正常啟動我們的springboot項目。

? ? ? ? 打開tomcat的bin目錄,在該目錄輸入cmd打開控制臺輸入startup命令啟動tomcat。

? ? ? ? 正常啟動!!!在瀏覽器輸入localhost:tomcat端口號,我tomcat的端口號是3000(默認為8080),如果想要訪問到我們的springboot項目,就需要帶上我們剛剛解壓的路徑名稱,比如我這里的light項目的訪問路徑為:localhost:3000/light?

?需要注意的是:tomcat的服務器的端口會覆蓋springboot項目的端口,所以springboot項目的端口號是沒有作用的,我們訪問項目是通過他在tomcat的文件夾名稱來訪問的,包括你設置的項目名稱都是沒用的,一切以tomcat的文件名稱為準

? ? ? ? 我springboot項目有如下的controller

@RestController
@RequestMapping("/test")
public class TestController {@GetMapping("/getstr")public String test(){return "hello world";}
}

? ? ? ? 所以我們通過訪問該路徑來測試是否部署成功,是否能夠訪問到:輸入以下路徑:

localhost:3000/light/test/getstr

? ? ? ? 成功訪問到!!!

2.1 通過內網穿透遠程訪問到后端項目

? ? ? ? 啟動NatApp,(具體內容參考我上一篇博客:通過內網穿透實現遠程訪問個人電腦資源詳細過程(免費)(NatApp + Tomcat)-CSDN博客)

????????

? ? ? ? ?在瀏覽器中輸入:網址+/light/test/getstr, 能夠訪問到!!!就算是其他電腦/手機設備都能夠訪問到,這就實現了將springboot部署到服務器一樣的效果

2.1 打包Vue項目并完成內網穿透

? ? ? ? 在打包Vue項目的全過程中千萬不要將natapp給停止了,因為使用的是免費隧道,每次重新打開我們natapp提供的網址就會變換,一變化就需要修改Vue項目的請求路徑

? ? ? ? 在打包Vue項目之前,需要修改前端向后段發送ajax/axios請求的路徑,因為我們后端的地址已經變成了?http://bs9p3v.natappfree.cc/light?而不再是127.0.0.1:8088/app 這種本地訪問路徑了

????????

? ? ? ? 然后前端還需要設置一個東西,就是開啟其他ip地址訪問項目的配置

disableHostCheck:true

? ? ? ? 在vue項目的根路徑下執行npm run build命令對vue項目進行打包,會在根目錄下生成一個dist文件夾,就是我們打包后的文件(dist文件夾就跟我們war解壓之后是一樣的效果,都是編譯之后的內容)

? ? ? ? 在tomcat的webapps的文件夾中新建一個front文件夾用來存放dist文件夾中的內容

? ? ? ? 將dist文件夾中的所有內容直接復制到webapps下的front文件夾

? ? ? ? 然后重啟我們本地的tomcat(千萬不要把natapp停止了):直接關掉tomcat的命令窗口,重新進入tomcat的bin目錄下,打開cmd控制臺輸入startup命令運行tomcat即可

? ? ? ? 成功啟動tomcat之后,就來測試能否訪問到我們的vue項目,以及vue項目能否向后端發送請求,在瀏覽器輸入:?http://bs9p3v.natappfree.cc/front。

? ? ? ? 因為是免費的隧道,所以可能比較慢。

? ? ? ? 成功訪問到。并且也能夠正常的向后端發送請求!!

? ? ? ?至此我們就通過內網穿透實現了將項目部署到服務器一樣的效果了(用完之后記得將natapp關閉了

鳥欲高飛先振翅,人求上進先讀書。——名言出處:李苦禪

????????

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13198.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13198.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13198.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習之卷積神經網絡理論基礎

深度學習之卷積神經網絡理論基礎 卷積層的操作&#xff08;Convolutional layer&#xff09; 在提出卷積層的概念之前首先引入圖像識別的特點 圖像識別的特點 特征具有局部性&#xff1a;老虎重要特征“王字”僅出現在頭部區域特征可能出現在任何位置下采樣圖像&#xff0c…

Python 小抄

Python 備忘單 目錄 1.語法和空格 2.注釋 3.數字和運算 4.字符串處理 5.列表、元組和字典 6.JSON 7.循環 8.文件處理 9.函數 10.處理日期時間 11.NumPy 12.Pandas 要運行單元格&#xff0c;請按 ShiftEnter 或單擊頁面頂部的 Run&#xff08;運行&#xff09;。 1.語法和空格…

三種方法進行跨服務器文件傳輸

今天需要在一個centOS服務器上編譯一個工具, 我的本地主機是ubuntu, 但是由于服務器是合規環境, 沒有文件傳輸的接口, 也不能訪問github等外網, 所以很多依賴只能下載到ubuntu然后在想辦法搞到服務器上. 這種場景有三種簡單有用的辦法, 整理一下. 方法一: 把主機配置成http ser…

6---Linux下版本控制器Git的知識點

一、Linux之父與Git的故事&#xff1a; Linux之父叫做“Linus Torvalds”&#xff0c;我們簡稱為雷納斯。Linux是開源項目&#xff0c;所以在Linux的早期開發中&#xff0c;許多世界各地的能力各異的程序員都參與到Linux的項目開發中。那時&#xff0c;雷納斯每天都會收到許許…

用ntpdate同步時間出現問題

1. 使用ntpdate同步 [rootnode ~]# ntpdate ntp.aliyun.com4 Aug 00:07:17 ntpdate[20924]: adjust time server 203.107.6.88 offset -0.001543 sec2. 查看時間 [rootnode ~]# date Thu Aug 4 00:07:46 CST 20223. 如果時間對不上 報錯信息 cna02:~ # ntpdate ntp1.aliyu…

mysql社區版最多支持多個連接并發

MySQL社區版對于并發連接數的支持并沒有一個固定的上限&#xff0c;它實際上取決于多個因素&#xff0c;包括服務器的硬件配置、MySQL的配置參數以及應用程序的設計等。 硬件配置&#xff1a;服務器的CPU、內存和磁盤I/O等硬件資源會直接影響MySQL可以處理的并發連接數。例如&a…

VMware Fusion 13.5.2 for Mac 發布,產品訂閱模式首個重大變更

VMware Fusion 13.5.2 for Mac 發布&#xff0c;產品訂閱模式首個重大變更 適用于基于 Intel 處理器和搭載 Apple 芯片的 Mac 的桌面虛擬化軟件 請訪問原文鏈接&#xff1a;https://sysin.org/blog/vmware-fusion-13/&#xff0c;查看最新版。原創作品&#xff0c;轉載請保留…

vue props接收組件數據(類型配置)

"props"接收的常見傳參類型有以下幾種&#xff1a;String&#xff1a;字符串類型&#xff0c;Number&#xff1a;數字類型&#xff0c;Boolean&#xff1a;布爾類型&#xff0c;Array&#xff1a;數組類型&#xff0c;Object&#xff1a;對象類型&#xff0c;Date&am…

文章解讀與仿真程序復現思路——中國電機工程學報EI\CSCD\北大核心《集裝箱海港級聯物流-能源耦合系統協同優化方法 》

本專欄欄目提供文章與程序復現思路&#xff0c;具體已有的論文與論文源程序可翻閱本博主免費的專欄欄目《論文與完整程序》 論文與完整源程序_電網論文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 電網論文源程序-CSDN博客電網論文源…

FPGA - GTX收發器-K碼 以及 IBERT IP核使用

一&#xff0c;前言 在FPGA - Xilinx系列高速收發器---GTX中詳細介紹了GTX的基礎知識&#xff0c;以及IP核的調用&#xff0c;下面將補充一下GTX在使用中的高速串行數據流在接收和發送時的控制與對齊&#xff08;K碼&#xff09;&#xff0c;以及高速接口GTX&#xff0c;如果G…

Springboot開發 -- Postman 調試 session 驗證 接口

當我們在開發Spring Boot應用時&#xff0c;經常會遇到帶有Session驗證的接口&#xff0c;這些接口需要用戶先登錄并獲取到Session ID&#xff08;或稱為cookie中的JSESSIONID&#xff09;&#xff0c;然后在后續的請求中攜帶這個Session ID來保持會話狀態。下面我將以一個實際…

力扣72-編輯距離

題目鏈接 記憶化搜索&#xff1a; 解題關鍵&#xff1a;每次僅考慮兩字符串word1、word2分別從0 - i修改成0-j下標的完全匹配(下標表示&#xff09; 臨界條件&#xff1a;當 i 或 j 小于0時&#xff0c;表示該字符串為空&#xff0c;編輯距離確定為 y1 或 x1 int dp[501][501…

Hello, GPT-4o!

2024年5月13日&#xff0c;OpenAI 在官網正式發布了最新的旗艦模型 GPT-4o 它是一個 多模態模型&#xff0c;可以實時推理音頻、視頻和文本。 * 發布會完整版視頻回顧&#xff1a;https://www.youtube.com/watch?vDQacCB9tDaw GPT-4o&#xff08;“o”代表“omni”&#xff0c…

高效協同,智慧繪制:革新型流程圖工具全解析

流程圖&#xff0c;作為一種直觀展示工作過程和系統運作的工具&#xff0c;在現代辦公和項目管理中發揮著不可或缺的作用。 其優勢在于能夠清晰、直觀地呈現復雜的過程和關系&#xff0c;幫助人們快速理解并掌握關鍵信息。同時&#xff0c;流程圖也廣泛應用于各種場景&#xf…

linux常用命令(持續更新)

1.sudo -i 切換root權限 2. ll 和 ls 查看文件夾下面的文件 3. cat 查看文件內容 cat xxx.txt |grep 好 篩選出有好的內容 4. vi 編輯文件 點擊insert進入編輯模式 編輯完之后點擊Esc退出編輯模式 數據:wq!回車保存文件 5. ssh 連接到可以訪問的系統 6. telnet 看端口是否可以…

【Python】圖像批量合成視頻,并以文件夾名稱命名合成的視頻

一個文件夾中有多個子文件夾&#xff0c;子文件夾中有多張圖像。如何把批量把子文件夾中的圖像合成視頻&#xff0c;視頻名稱是子文件夾的名稱&#xff0c;生成的視頻保存到指定文件夾&#xff0c;效果記錄。 代碼 import os import cv2def create_video_from_images(image_f…

leetcode刷題(6):二叉樹的使用

文章目錄 104. 二叉樹的最大深度解題思路c 實現 94. 二叉樹的中序遍歷解題思路c 實現 101. 對稱二叉樹解題思路c 實現 96. 不同的二叉搜索樹解題思路c 實現 102. 二叉樹的層序遍歷解題思路c 實現 104. 二叉樹的最大深度 題目: 給定一個二叉樹 root &#xff0c;返回其最大深度…

重新認識Flutter跨平臺技術(上)

背景 2017年,Flutter剛推出來的時候,正好自己在做TV Launcher開發的工作。 我們知道TV Launcher是Android TV操作系統中的一個啟動器應用程序。它負責在打開電視時展示給用戶的主要界面,包括應用程序圖標、推薦內容等。通過Android TV Launcher,用戶可以方便地瀏覽和啟動…

ALV 圖標顯示

前言 在ABAP ALV中&#xff0c;使用fieldcat來定義列表中每個字段的顯示屬性&#xff0c;包括圖標&#xff08;Icon&#xff09;的顯示。圖標可以在ALV列表中為特定列的行或標題添加圖形元素&#xff0c;以增強視覺提示或傳達附加信息。 ICON查詢 圖標的名稱用事務碼”ICON“進…

智能BI(后端)-- 系統異步化

文章目錄 系統問題分析什么是異步化&#xff1f;業務流程分析標準異步化的業務流程系統業務流程 線程池為什么需要線程池&#xff1f;線程池兩種實現方式線程池的參數線程池的開發 項目異步化改造 系統問題分析 問題場景&#xff1a;調用的服務能力有限&#xff0c;或者接口的…