欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue前端項(xiàng)目部署的三種方案詳解

 更新時(shí)間:2024年08月15日 16:32:26   作者:扶蘇1002  
這篇文章主要介紹了Vue前端項(xiàng)目部署的三種方案,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下

一、項(xiàng)目打包

  • 我們開(kāi)發(fā)用的腳手架其實(shí)就是一個(gè)微型服務(wù)器,用于:支撐開(kāi)發(fā)環(huán)境、運(yùn)行代理服務(wù)器等。
  • 打包完的文件中不存在:.vue.jsx 、.less 等文件,而是:html、js、css
  • 打包后的文件,不再借助腳手架運(yùn)行,而是需要部署到服務(wù)器上運(yùn)行。
  • 打包前,請(qǐng)務(wù)必梳理好前端項(xiàng)目的 ajax 封裝(請(qǐng)求前綴、代理規(guī)則等)

二、使用node本地服務(wù)器部署

好處: 在一個(gè)局域網(wǎng)內(nèi),任意一個(gè)設(shè)備都可以通過(guò)ip訪(fǎng)問(wèn)項(xiàng)目

2.1. 搭建一個(gè)node后臺(tái)服務(wù)

新建一個(gè)文件夾my_server

初始化package.json,cmd執(zhí)行npm init -y

安裝插件express(是一個(gè)快速搭建服務(wù)的插件)

npm i express

my_server目錄下新建server.js,代碼如下:

// 引入express
const express = require("express");
// 配置端口號(hào)
const PORT = 8088;
// 創(chuàng)建一個(gè)app服務(wù)實(shí)例
const app = express();
// 配置靜態(tài)資源
app.use(express.static(__dirname + "/public"));
// 綁定端口監(jiān)聽(tīng)
app.listen(PORT, () => {
  console.log(`本地服務(wù)器啟動(dòng)成功,http://localhost:${PORT}`);
});
  • my_server目錄下新建public文件夾(用于存放打包后的index.html、js、css
  • 項(xiàng)目目錄結(jié)構(gòu)如下:

2.2. 將vue項(xiàng)目打包成dist文件

vue項(xiàng)目打包

npm run build

打包后的dist文件如下

2.3. 將dist文件下面的資源交給express托管

2.2打包后的dist目錄下面的文件復(fù)制到my_server下面的public目錄下

2.4. 啟動(dòng)node服務(wù)

node .\server.js

2.5. 訪(fǎng)問(wèn)http://localhost:8088即可看到你的項(xiàng)目頁(yè)面

2.6. 解決history路由跳轉(zhuǎn)后,刷新瀏覽器,頁(yè)面報(bào)404的問(wèn)題

出現(xiàn)原因:history路由在部署上去之后,前端跳轉(zhuǎn)的路由會(huì)被認(rèn)定為是/xxxxget請(qǐng)求

2.6.1. 方式一:將路由模式由history改為hash

const router = new VueRouter({
  mode: 'hash', // history改為hash
  base: process.env.BASE_URL,
  routes
})

2.6.2. 方式二:在server.js中將所有的請(qǐng)求匹配都返回index.html

const router = new VueRouter({
  mode: 'hash', // history改為hash
  base: process.env.BASE_URL,
  routes
})

2.6.3. 方式三:使用第三方的插件connect-history-api-fallback 安裝插件

npm i connect-history-api-fallback

引入插件

// history路由刷新404解決
const history = require("connect-history-api-fallback");

配置插件(必須放到配置靜態(tài)資源之前)

// 必須放到配置靜態(tài)資源之前
app.use(history());
// 配置靜態(tài)資源
app.use(express.static(__dirname + "/public"));

2.7. 解決請(qǐng)求代理跨域的問(wèn)題

出現(xiàn)原因:我們?cè)诒镜?code>npm run serve/dev的時(shí)候,vue-cli會(huì)幫我們啟動(dòng)一個(gè)代理服務(wù)器,但是打包以后,瀏覽器直接運(yùn)行js、css、html,是沒(méi)有代理服務(wù)器的,這個(gè)時(shí)候需要有一個(gè)插件去充當(dāng)代理服務(wù)器的角色

安裝插件:http-proxy-middleware

npm i http-proxy-middleware

引入插件

// 引入http代理服務(wù)器插件
const { createProxyMiddleware } = require("http-proxy-middleware");

配置代理服務(wù)器

// 配置代理服務(wù)器
app.use(
  "/api",
  createProxyMiddleware({
    target: "http://www.example.org/secret",
    changeOrigin: true,
    pathRewrite: { "^/api": "" },
  })
);

三、nginx服務(wù)器部署

3.1. nginx 簡(jiǎn)介

Nginx(發(fā)音為“engine-x”)是一款高性能的 HTTP 服務(wù)器和反向代理服務(wù)器,同時(shí)也是一個(gè)IMAP/POP3/SMTP 代理服務(wù)器。Nginx最初由 lgor Sysoev 編寫(xiě),于 2004年發(fā)布。它以其高性能、高穩(wěn)定性、豐富的功能集和低系統(tǒng)資源消耗而聞名,主要功能有:

  • 反向代理
  • 負(fù)載均衡
  • 靜態(tài)內(nèi)容服務(wù)
  • HTTP/2 支持
  • SSL/TLS 支持
  • 高速緩存

3.2. nginx的下載

下載地址:http://nginx.org

3.3. 使用nginx部署前端項(xiàng)目

將下載下來(lái)的nginx解壓,并打開(kāi)

打開(kāi)conf文件目錄下面的nginx.conf

我們找到html文件夾

把打包后的dist文件目錄下面的文件放到html目錄

運(yùn)行nginx.exe

瀏覽器訪(fǎng)問(wèn)http://localhost:80即可看到你的項(xiàng)目

3.4. 解決history路由跳轉(zhuǎn)后,刷新瀏覽器,頁(yè)面報(bào)404的問(wèn)題

出現(xiàn)原因:history路由在部署上去之后,前端跳轉(zhuǎn)的路由會(huì)被認(rèn)定為是/xxxxget請(qǐng)求

打開(kāi)nginx.conf文件,添加如下代碼

try_files $uri $uri/ /index.html; # 解決刷新404

3.5. 解決接口代理問(wèn)題

打開(kāi)nginx.conf文件,添加如下代碼

location /dev/ {
   # 設(shè)置代理目標(biāo)
   proxy_pass http://www.example.org/secret
}

3.6. 重啟nginx

找到任務(wù)管理器,關(guān)閉nginx進(jìn)程

重新雙擊nginx.exe啟動(dòng)

3.7. 瀏覽器訪(fǎng)問(wèn)http://localhost:80即可解決3.4和3.5的問(wèn)題

四、云服務(wù)器部署

4.1. 購(gòu)買(mǎi)云服務(wù)器獲取公網(wǎng)ip

阿里云、騰訊云都可以購(gòu)買(mǎi),購(gòu)買(mǎi)完成可以獲取到公網(wǎng)ip

4.2. 使用Xshell連接你的公網(wǎng)ip

用戶(hù)名默認(rèn) root

4.3. 使用Xftp連接你的公網(wǎng)ip

4.4. 通過(guò)Xftp將打包后的dist文件下面的靜態(tài)資源放置到云服務(wù)器 var下面新建文件夾 sph(用來(lái)放置你的靜態(tài)資源存放地址)

4.5. 使用Xshell安裝nginx

yum install nginx

輸入y回車(chē)

出現(xiàn)Complete說(shuō)明安裝成功

4.6. Xftp配置nginx.conf

找到etc/nginx

配置nginx.config

4.7. Xsheel啟動(dòng)nginx

service nginx start

4.8. 瀏覽器輸入 http://你的公網(wǎng)ip就可以訪(fǎng)問(wèn)你的項(xiàng)目了

瀏覽器輸入 http://你的公網(wǎng)ip就可以訪(fǎng)問(wèn)你的項(xiàng)目了

4.9. 如果覺(jué)得ip不好看,可以買(mǎi)個(gè)域名和自己的公網(wǎng)ip綁定

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

相關(guān)文章

  • vue 避免變量賦值后雙向綁定的操作

    vue 避免變量賦值后雙向綁定的操作

    這篇文章主要介紹了vue 避免變量賦值后雙向綁定的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue input輸入框關(guān)鍵字篩選檢索列表數(shù)據(jù)展示

    vue input輸入框關(guān)鍵字篩選檢索列表數(shù)據(jù)展示

    這篇文章主要為大家詳細(xì)介紹了vue input輸入框關(guān)鍵字篩選檢索列表數(shù)據(jù)展示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Vue模擬el-table演示插槽用法的示例詳解

    Vue模擬el-table演示插槽用法的示例詳解

    很多人知道插槽分為三種,但是實(shí)際到elementui當(dāng)中為什么這么用,就一臉懵逼,接下來(lái)就跟大家聊一聊插槽在elementui中的應(yīng)用,并且自己寫(xiě)一個(gè)類(lèi)似el-table的組件,感興趣的可以了解一下
    2023-05-05
  • 教你如何優(yōu)化?Vue.js?應(yīng)用程序

    教你如何優(yōu)化?Vue.js?應(yīng)用程序

    Vue?3引入了Composition?API,這是一套新的API用于編寫(xiě)組件,作為Options?API的替代,這篇文章主要介紹了如何優(yōu)化?Vue.js?應(yīng)用程序,需要的朋友可以參考下
    2023-02-02
  • vue使用動(dòng)畫(huà)實(shí)現(xiàn)滾動(dòng)表格效果

    vue使用動(dòng)畫(huà)實(shí)現(xiàn)滾動(dòng)表格效果

    這篇文章主要為大家詳細(xì)介紹了vue使用動(dòng)畫(huà)實(shí)現(xiàn)滾動(dòng)表格效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 如何將HTML頁(yè)面改寫(xiě)到vue項(xiàng)目中詳解

    如何將HTML頁(yè)面改寫(xiě)到vue項(xiàng)目中詳解

    html和vue都是前端技術(shù)中非常重要的一部分,其中html是web開(kāi)發(fā)的基石,而vue則是現(xiàn)代化的前端開(kāi)發(fā)框架之一,下面這篇文章主要給大家介紹了關(guān)于如何將HTML頁(yè)面改寫(xiě)到vue項(xiàng)目中的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • Vue.js第一天學(xué)習(xí)筆記(數(shù)據(jù)的雙向綁定、常用指令)

    Vue.js第一天學(xué)習(xí)筆記(數(shù)據(jù)的雙向綁定、常用指令)

    這篇文章主要為大家分享了Vue.js第一天的學(xué)習(xí)筆記,包括數(shù)據(jù)的雙向綁定、常用指令學(xué)習(xí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Pinia入門(mén)學(xué)習(xí)之實(shí)現(xiàn)簡(jiǎn)單的用戶(hù)狀態(tài)管理

    Pinia入門(mén)學(xué)習(xí)之實(shí)現(xiàn)簡(jiǎn)單的用戶(hù)狀態(tài)管理

    Vue3雖然相對(duì)于Vue2很多東西都變了,但是核心的東西還是沒(méi)有變,比如說(shuō)狀態(tài)管理、路由等,再Vue3中尤大神推薦我們使用pinia來(lái)實(shí)現(xiàn)狀態(tài)管理,他也說(shuō)pinia就是Vuex的新版本,這篇文章主要給大家介紹了關(guān)于Pinia入門(mén)學(xué)習(xí)之實(shí)現(xiàn)簡(jiǎn)單的用戶(hù)狀態(tài)管理的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Vue3?vue-devtools?調(diào)試工具下載安裝使用教程

    Vue3?vue-devtools?調(diào)試工具下載安裝使用教程

    vue-devtools是一款基于chrome游覽器的插件,用于調(diào)試vue應(yīng)用,這可以極大地提高我們的調(diào)試效率,尤其是對(duì)于初學(xué)vue的朋友來(lái)說(shuō)可謂是一大利器,這篇文章主要介紹了Vue3?vue-devtools?調(diào)試工具下載安裝,需要的朋友可以參考下
    2022-08-08
  • vue-cli構(gòu)建項(xiàng)目使用 less的方法

    vue-cli構(gòu)建項(xiàng)目使用 less的方法

    這篇文章主要介紹了vue-cli構(gòu)建項(xiàng)目使用 less,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10

最新評(píng)論