Vue項目打包部署到服務器

1. Vue項目打包部署到服務器

1.1. 配置

(1)修改package.json文件同級目錄下的vue.config.js文件。

// vue.config.js
module.exports = {publicPath: './',
}

在這里插入圖片描述
(2)檢查router下的index.js文件下配置的mode模式。
??檢查如果模式改為了history模式,打包后的頁面為空,將其注釋,使用默認的hash模式即可
在這里插入圖片描述
(3)在README.md文件下點擊npm run build 打包,或者在命令行輸入。
在這里插入圖片描述
在這里插入圖片描述
(4)目錄中多一個dist文件夾即為打包成功。
在這里插入圖片描述

1.2. 測試

??測試一下,瀏覽器打開網址鏈接即可。
在這里插入圖片描述

2. history模式部署

??默認情況下,Vue項目使用的是hash路由模式,就是URL中會包含一個#號的這種形式。#號以及之后的內容是路由地址的hash部分。正常情況下,當瀏覽器地址欄地址改變,瀏覽器會重新加載頁面,而如果是hash部分修改的話,則不會,這就是前端路由的原理,允許根據不同的路由頁面局部更新而不刷新整個頁面。H5新增了history的pushState接口,也允許前端操作改變路由地址但是不觸發頁面刷新,history模式即利用這一接口來實現。因此使用history模式可以去掉路由中的#號。

2.1. 項目配置

??在vue-router路由選項中配置mode選項和base選項,mode配置為’history’;如果部署到非域名根目錄,還需要配置base選項為前文配置的publicPath值(注意:此情況下,publicPath必須使用絕對路徑/test的配置形式,而不能用相對路徑./)
在這里插入圖片描述

2.2. nginx配置

??對于history模式,假設項目部署到域名下的/test目錄,訪問http://xxx/test/about的時候,服務器會去找/test指向的目錄下的about子目錄或文件,很顯然因為是單頁面應用,并不會存在a這個目錄或者文件,就會導致404錯誤:
在這里插入圖片描述
??Vue項目部署后頁面找不到
??我們要配置nginx讓這種情況下,服務器能夠返回單頁應用的index.html,然后剩下的路由解析的事情就交給前端來完成即可。
在這里插入圖片描述
??history模式nginx配置
??這句配置的意思就是,拿到一個地址,先根據地址嘗試找對應文件,找不到再試探地址對應的文件夾,再找不到就返回/test/index.html。再次打開剛才的about地址,刷新頁面也不會404啦:
在這里插入圖片描述

3.3. history模式部署到非域名根路徑下

??非域名根目錄下部署,首先肯定要配置publicPath。需要注意的點前面其實已經提過了,就是這種情況下不能使用相對路徑./或者空串配置publicPath。為什么呢?原因是它會導致router-link等的表現錯亂,使用測試項目[2]分別使用兩種配置打包發布,審查元素就能看出區別。在頁面上有兩個router-link,Home和About:
在這里插入圖片描述

3.4. 兩種配置打包后的結果如下。

(1)publicPath配置為./或者空串:
在這里插入圖片描述
(2)publicPath配置為/test:
在這里插入圖片描述
??publicPath配置為相對路徑的router-link打包后地址變成了相對根域名下地址,很明顯是錯誤的,所以非域名根路徑部署應該將publicPath配置為完整的前綴路徑。

3. Vue項目打包部署問題總結

3.1. 項目配置

??為了解決打包后資源路徑不對的問題,需要在vue.config.js中配置publicPath,這里有兩種配置方式,分別將publicPath配置為./和/test:

const {defineConfig
} = require('@vue/cli-service')
module.exports = defineConfig({transpileDependencies: true,// 部署生產環境和開發環境下的URL。// 默認情況下,Vue CLI 會假設你的應用是被部署在一個域名的根路徑上// 例如 https://www.ruoyi.vip/。如果應用被部署在一個子路徑上,你就需要用這個選項指定這個子路徑。例如,如果你的應用被部署在 https://www.ruoyi.vip/admin/,則設置 baseUrl 為 /admin/。publicPath: process.env.NODE_ENV === "production" ? "./" : "/",// publicPath:  "./",// 在npm run build 或 yarn build 時 ,生成文件的目錄名稱(要和baseUrl的生產環境路徑一致)(默認dist)//outputDir: "dist",// 用于放置生成的靜態資源 (js、css、img、fonts) 的;(項目打包之后,靜態資源會放在這個文件夾下)//assetsDir: "static",// 是否開啟eslint保存檢測,有效值:ture | false | 'error'//lintOnSave: process.env.NODE_ENV === "development",lintOnSave: false,
})

在這里插入圖片描述

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

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

相關文章

【jpa】springboot使用jpa示例

目錄 1. 請求示例2. pom依賴3. application.yaml4.controller5. service6. repository7. 實體8. 啟動類 1. 請求示例 curl --location --request POST http://127.0.0.1:8080/user \ --header User-Agent: Apifox/1.0.0 (https://apifox.com) \ --header Content-Type: applic…

uniapp 常用的指令語句

uniapp 是一個使用 Vue.js 開發的跨平臺應用框架,因此,它繼承了 Vue.js 的大部分指令。以下是一些在 uniapp 中常用的 Vue 指令語句及其用途: v-if / v-else-if / v-else 條件渲染。v-if 有條件地渲染元素,v-else-if 和 v-else 用…

中企出海-德國會計準則和IFRS間的差異

根據提供的網頁內容,德國的公認會計準則(HGB)與國際會計準則(IFRS)之間的主要差異可以從以下幾個方面進行比較: 財務報告的目的: IFRS:財務報告主要是供投資者做決策使用&#xff0c…

NPU是什么?電腦NPU和CPU、GPU區別介紹

隨著人工智能技術的飛速發展,計算機硬件架構也在不斷演進以適應日益復雜的AI應用場景。其中,NPU(Neural Processing Unit,神經網絡處理器)作為一種專為深度學習和神經網絡運算設計的新型處理器,正逐漸嶄露頭…

使用skywalking,grafana實現從請求跟蹤、 指標收集和日志記錄的完整信息記錄

Skywalking是由國內開源愛好者吳晟開源并提交到Apache孵化器的開源項目, 2017年12月SkyWalking成為Apache國內首個個人孵化項目, 2019年4月17日SkyWalking從Apache基金會的孵化器畢業成為頂級項目, 目前SkyWalking支持Java、 .Net、 Node.js、…

純CSS實現文本或表格特效(連續滾動與首尾相連)

純CSS實現文本連續向左滾動首尾相連 1.效果圖&#xff1a; 2.實現代碼&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, init…

【LeetCode刷題之路】622.設計循環隊列

LeetCode刷題記錄 &#x1f310; 我的博客主頁&#xff1a;iiiiiankor&#x1f3af; 如果你覺得我的內容對你有幫助&#xff0c;不妨點個贊&#x1f44d;、留個評論?&#xff0c;或者收藏?&#xff0c;讓我們一起進步&#xff01;&#x1f4dd; 專欄系列&#xff1a;LeetCode…

Node.js基礎入門

1.Node.js 簡介 Node 是一個讓 JavaScript (獨立)運行在服務端的開發平臺,它讓 JavaScript 成為與PHP、Python、Perl、Ruby 等服務端語言平起平坐的腳本語言。 發布于2009年5月,由Ryan Dahl開發,實質是對Chrome V8引擎進行了封裝。 簡單的說 Node.js 就是運行在服務端的…

#思科模擬器通過服務配置保障無線網絡安全Radius

演示拓撲圖&#xff1a; 搭建拓撲時要注意&#xff1a; 只能連接它的Ethernet接口&#xff0c;不然會不通 MAC地址綁定 要求 &#xff1a;通過配置MAC地址過濾禁止非內部員工連接WiFi 打開無線路由器GUI界面&#xff0c;點開下圖頁面&#xff0c;配置路由器無線網絡MAC地址過…

docker 部署kafka集群

docker run 部署 docker run -d --name zookeeper --restart always -p 2181:2181 wurstmeister/zookeeperdocker run -d --name kafka1 --restart always -p 9094:9092 \-e KAFKA_ADVERTISED_HOST_NAME182.54.14.45 \-e KAFKA_ZOOKEEPER_CONNECT182.54.14.45:2181 \-e KAFKA_…

Qt-chart 畫折線圖(以時間為x軸)

上圖 代碼 #include <iostream> #include <random> #include <qcategoryaxis.h>void MainWindow::testLine() {//1、創建圖表視圖QChartView* view new QChartView(this);//2.創建圖表QChart* chart new QChart();//3.將圖表設置給圖表視圖view->setCh…

C++多線程常用方法

在 C 中&#xff0c;線程相關功能主要通過頭文件提供的類和函數來實現&#xff0c;以下是一些常用的線程接口方法和使用技巧&#xff1a; std::thread類 構造函數&#xff1a; 可以通過傳入可調用對象&#xff08;如函數指針、函數對象、lambda 表達式等&#xff09;來創建一…

up主親測,ToDesk/青椒云/順網云這三款云電腦玩轉AIGC場景

文章目錄 1. 前言2. 云電腦性能分析3. 基礎硬件數據3.1 硬件配置3.2 AI 評測跑分 4. 云電腦 AIGC 上手實測4.1 ToDesk4.1.1 AIGC 技術集成情況4.1.2 界面及功能4.1.3 項目部署4.1.4 黑神話悟空 AI 換臉4.1.6 AIGC 文生圖體驗 4.2 青椒云4.2.1 AIGC 技術集成情況4.2.2 界面及功能…

C++(十八)

前言&#xff1a; 本文依據上一篇&#xff0c;繼續對C中的函數進行學習。 一&#xff0c;內聯函數。 再執行函數代碼時&#xff0c;比不使用函數花費了更多時間&#xff0c;因為總結步驟&#xff0c;傳遞參數和返回值都很花費時間。 因此&#xff0c;在調試小型函數時&…

功能篇:JAVA后端實現跨域配置

在Java后端實現跨域配置&#xff08;CORS&#xff0c;Cross-Origin Resource Sharing&#xff09;有多種方法&#xff0c;具體取決于你使用的框架。如果你使用的是Spring Boot或Spring MVC&#xff0c;可以通過以下幾種方式來配置CORS。 ### 方法一&#xff1a;全局配置 對于所…

數獨游戲app制作拆解(之一)——功能介紹

android studio版本&#xff1a;2023.3.1 例程名稱&#xff1a;shudu666 前陣子作了一個EXCEL版的數獨&#xff0c;再早之前就想作這個數獨app,但一直沒動手&#xff0c;一方面懶&#xff0c;另一方面我把自己繞到坑里了&#xff0c;之前做的是一解數獨的app,那個是有點難&am…

Spring注解篇:@Configuration詳解

前言 在Spring框架中&#xff0c;Configuration注解是實現Java配置的核心。它允許開發者以編程的方式定義Bean的創建過程&#xff0c;而不是使用XML文件。這種基于注解的配置方式&#xff0c;不僅簡化了配置的復雜性&#xff0c;還提高了代碼的可讀性和可維護性。 摘要 本文…

通過一個例子學習回溯算法:從方法論到實際應用

回溯算法&#xff1a;從方法論到實際應用 回溯算法&#xff08;Backtracking&#xff09;是一種通過窮舉法尋找問題所有解的算法&#xff0c;它的核心思想是逐步構建解空間樹&#xff0c;在每個步驟中判斷當前解是否合法。如果不合法&#xff0c;就“回溯”到上一步&#xff0…

Python隨機抽取Excel數據并在處理后整合為一個文件

本文介紹基于Python語言&#xff0c;針對一個文件夾下大量的Excel表格文件&#xff0c;基于其中每一個文件&#xff0c;隨機從其中選取一部分數據&#xff0c;并將全部文件中隨機獲取的數據合并為一個新的Excel表格文件的方法。 首先&#xff0c;我們來明確一下本文的具體需求。…

構建樹莓派溫濕度監測系統:從硬件到軟件的完整指南

?作者簡介&#xff1a;2022年博客新星 第八。熱愛國學的Java后端開發者&#xff0c;修心和技術同步精進。 &#x1f34e;個人主頁&#xff1a;Java Fans的博客 &#x1f34a;個人信條&#xff1a;不遷怒&#xff0c;不貳過。小知識&#xff0c;大智慧。 &#x1f49e;當前專欄…