Vue項(xiàng)目Nginx子目錄部署(Vite和Vue-CLI)
一、序言
生產(chǎn)環(huán)境中Vue項(xiàng)目我們一般會(huì)部署在域名的子目錄下,在了解如何部署時(shí)我們先了解下Vue構(gòu)建相關(guān)的基礎(chǔ)知識。
首先Vue項(xiàng)目打包后其實(shí)就是個(gè)單頁應(yīng)用,這也是為什么第一次加載時(shí)會(huì)比較慢。
既然是單頁應(yīng)用,如果想在Nginx中指定前綴訪問靜態(tài)資源和文件,需要在打包構(gòu)建時(shí)配置base路徑,目前Vue使用的構(gòu)建工具有Vite(針對Vue3)還有Vue CLI(基于Webpack,針對Vue2)。
同時(shí)Vue-Router實(shí)例化時(shí)如果歷史記錄模式為HTML5模式,也需要指定路由的base路徑,不然資源會(huì)訪問失敗。
二、構(gòu)建工具配置
1、Vite打包配置
Vite目前是Vu3主流構(gòu)建工具,打包配置我們可以在vite.config.js中進(jìn)行修改,指定base配置即可,這里我們指定了base為/easy-wealth/,也就是說所有的靜態(tài)資源都會(huì)帶上該前綴。
import {defineConfig} from 'vite';
import vue from '@vitejs/plugin-vue';
import legacy from '@vitejs/plugin-legacy';
import path from 'path';
// https://vitejs.dev/config/
export default defineConfig({
base: '/easy-wealth/',
plugins: [
vue(),
legacy({
targets: ['defaults', 'not IE 11'],
})
],
resolve: {
alias: {
'@': path.resolve(__dirname, './src')
}
}
});
2、Vue CLI打包配置
Vue CLI目前已經(jīng)處于維護(hù)狀態(tài),一般老項(xiàng)目可能還在用它來開發(fā),Vue CLI打包時(shí)基于Webpack構(gòu)建。通過vue.config.js我們可以通過publicPath選項(xiàng)指定靜態(tài)資源的訪問前綴,配置如下:
module.exports = {
publicPath: '/easy-wealth/',
outputDir: 'dist',
assetsDir: 'static',
lintOnSave: process.env.NODE_ENV !== 'production'
}
通過上述配置,打包后我們會(huì)發(fā)現(xiàn)index.html文件里所有的靜態(tài)資源訪問路徑前都加上了/easy-wealth前綴。

三、Vue-Router配置
目前Vue-Router支持3種歷史記錄模式,分別是Hash模式、Memory模式和HTML5模式。如果我們指定歷史記錄模式為HTML5模式,那么一定要指定路由的base路徑,不然頁面訪問會(huì)出現(xiàn)404。
const router = createRouter({
history: createWebHistory('/easy-wealth/'),
routes
});
export default router;
四、Nginx配置
在Nginx配置中,我們加了一項(xiàng)try_files回退路由配置,前面已經(jīng)說過Vue項(xiàng)目是單頁面應(yīng)用,這項(xiàng)配置看起來有點(diǎn)復(fù)雜,但也容易理解,舉個(gè)例子:
當(dāng)訪問http://test.com/easy-wealth/hwc時(shí),Nginx首先會(huì)去h5/easy-wealth/dist目錄下找名為hwc的目錄,以及該目錄下的文件,如果都沒有找到,則回退訪問/easy-wealth/index.html,這時(shí)Nginx會(huì)在h5/easy-wealth/dist下找到名為index.html的文件。
location /easy-wealth {
alias h5/easy-wealth/dist;
try_files $uri $uri/ /easy-wealth/index.html;
}到此這篇關(guān)于Vue項(xiàng)目Nginx子目錄部署(Vite和Vue-CLI)的文章就介紹到這了,更多相關(guān)Vue Nginx子目錄部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- nginx找到默認(rèn)根目錄(root?html)的方法
- nginx如何配置vue項(xiàng)目history的路由模式(非根目錄)
- 通過nginx實(shí)現(xiàn)訪問服務(wù)器指定目錄下圖片資源
- nginx 不同的訪問路徑對應(yīng)項(xiàng)目不同的目錄的實(shí)現(xiàn)方法
- nginx設(shè)置資源請求目錄的方式詳解
- Nginx安裝完成沒有生成sbin目錄的解決方法
- Nginx本地目錄映射實(shí)現(xiàn)代碼實(shí)例
- nginx用正則表達(dá)式實(shí)現(xiàn)泛域名自動(dòng)匹配目錄的方法
- 深入理解Nginx中的sites-enabled目錄
相關(guān)文章
Vue動(dòng)態(tài)組件表格的實(shí)現(xiàn)代碼
這篇文章主要介紹了Vue動(dòng)態(tài)組件表格的實(shí)現(xiàn)代碼,包括框架結(jié)構(gòu)組件,文中還給大家封裝了幾個(gè)組件,有按鈕組件、圖片組件、滑動(dòng)開關(guān),結(jié)合示例代碼給大家詳細(xì)講解,需要的朋友可以參考下2022-10-10
Vue中Element的table多選表格如何實(shí)現(xiàn)單選
這篇文章主要介紹了Vue中Element的table多選表格如何實(shí)現(xiàn)單選,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Vue的異步組件加載的實(shí)現(xiàn)方法小結(jié)
在 Vue 中,異步組件是指那些在需要時(shí)才會(huì)被加載的組件,與傳統(tǒng)的靜態(tài)組件不同,異步組件通過動(dòng)態(tài)加載的方式,可以有效地減少初始加載的資源和時(shí)間,在 Vue 中實(shí)現(xiàn)異步組件加載非常簡單,開發(fā)者有多種方法可以做到,本文給大家介紹了一些常用的實(shí)現(xiàn)方法2024-11-11
vue?點(diǎn)擊按鈕?路由跳轉(zhuǎn)指定頁面的實(shí)現(xiàn)方式
這篇文章主要介紹了vue?點(diǎn)擊按鈕?路由跳轉(zhuǎn)指定頁面的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
Vue3組件異步更新和nextTick運(yùn)行機(jī)制源碼解讀
這篇文章主要為大家介紹了Vue3組件異步更新和nextTick運(yùn)行機(jī)制源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03

