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

Vue3本地打包啟動出現(xiàn)白屏的解決思路詳解

 更新時(shí)間:2025年05月20日 10:42:53   作者:來自星星的坤  
這篇文章主要為大家詳細(xì)介紹了Vue3本地打包啟動時(shí)出現(xiàn)白屏的解決思路,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

“為什么我訪問 http://127.0.0.1:5501/index.html 白屏,刪了 index.html 再訪問 / 就又活過來了?”

—— 你的項(xiàng)目與 SPA 路由的“宮斗大戲”

一、問題復(fù)現(xiàn)

場景

  • 本地通過 VSCode Live Server(或其他靜態(tài)服務(wù)器)啟動了打包后的 Vue3 應(yīng)用目錄(假設(shè)為 dist/)。
  • 訪問 http://127.0.0.1:5501/index.html,頁面一片空白(白屏)。
  • 刪掉根目錄下的 index.html,再次訪問 http://127.0.0.1:5501/,頁面又瞬間正常渲染了!

本能誤區(qū)

  • “是不是文件丟了?是不是打包壞了?”
  • 反復(fù)打包、重裝依賴,也無濟(jì)于事。

二、幕后黑手:靜態(tài)掛載 & 路由攔截雙重鍋

1. 靜態(tài)服務(wù)器掛載順序

多數(shù)本地靜態(tài)服務(wù)器(Live Server、http-server、serve 等)默認(rèn)會:

  • 優(yōu)先尋找請求路徑對應(yīng)的靜態(tài)文件(如 index.html、.js、.css 等)。
  • 若文件存在,則直接返回該文件,不再回退到其它目錄。
  • 若文件不存在,則“fallback”到根目錄的 index.html(如果開啟了單頁應(yīng)用回退)。

因果分析

當(dāng)你在項(xiàng)目根目錄下也放置了一份 “空白” index.html(比如不小心把源碼的空白模板也上傳進(jìn) dist/),訪問 /index.html 時(shí),服務(wù)器把它當(dāng)作靜態(tài)文件直接返回,就一片白。

刪除后,請求 /index.html 找不到后,觸發(fā)回退,將真正的打包入口 dist/index.html 返回,于是頁面正常。

2. Vue Router History 模式“誤判”

如果你在項(xiàng)目中使用了 createWebHistory()(History 模式):

訪問 http://…/index.html

  • 瀏覽器加載了文件后,Vue 啟動時(shí)會把當(dāng)前 URL 路徑 /index.html 當(dāng)成一個(gè)路由去匹配。
  • 由于通常路由表里并沒有對應(yīng) /index.html 的條目,結(jié)果匹配失敗,組件不渲染,就白屏了。

訪問 http://…/

路徑是 /,正好匹配首頁組件,應(yīng)用正常啟動。

三、最終解法:規(guī)范掛載 & 路由回退

下面以 Nginx 為例,示范如何在生產(chǎn)(或本地模擬生產(chǎn))環(huán)境下正確部署,徹底杜絕“刪了才行”的尷尬。

1. Nginx 標(biāo)準(zhǔn)配置

server {
    listen       80;
    server_name  your.domain.com;            # 替換成你的域名或 IP
 
    # ① 指定根目錄為打包輸出
    root   /var/www/myapp;                   # 假設(shè)你把 dist 放這里
    index  index.html;
 
    # ② 靜態(tài)資源走文件系統(tǒng),開啟長緩存
    location ~* \.(js|css|png|jpg|jpeg|gif|svg|ico|ttf|woff2?)$ {
        expires    30d;
        access_log off;
    }
 
    # ③ 單頁應(yīng)用路由回退
    location / {
        try_files $uri $uri/ /index.html;
    }
 
    # ④ 全部 404 也返回入口頁(可選)
    error_page 404 /index.html;
}

部署步驟

1.打包 & 上傳

npm run build
scp -r dist/* user@server:/var/www/myapp/

2.放置配置

CentOS:直接放在 /etc/nginx/conf.d/myapp.conf

3.測試 & 重載

sudo nginx -t
sudo systemctl reload nginx

2. VSCode Live Server(本地調(diào)試)快速修復(fù)

在項(xiàng)目根目錄下新建或修改 .vscode/settings.json:

{
  "liveServer.settings.root": "dist"
}

保存后重啟 Live Server,即可讓它把 dist/ 當(dāng)作站點(diǎn)根,不再被源碼根目錄下的文件干擾。

四、補(bǔ)充技巧

1.避免手動地址欄寫 index.html

直接訪問 / 即可,現(xiàn)代服務(wù)器都會自動加載 index.html。

2.Hash 模式降級

如果你不想配置服務(wù)器路由回退,可在 Vue Router 中改為:

import { createRouter, createWebHashHistory } from 'vue-router'
const router = createRouter({
  history: createWebHashHistory(),
  routes: [ /* ... */ ]
});

所有 URL 會加上 #/,徹底繞過服務(wù)器路由判斷。

3.CI/CD 自動發(fā)布

在打包完成后,結(jié)合 GitHub Actions / GitLab CI 自動將 dist/ 同步到服務(wù)器或 CDN,避免漏傳、錯(cuò)傳文件。

五、結(jié)語

原來「刪除一份文件就能跑起來」背后的真相,既有靜態(tài)服務(wù)器的掛載機(jī)制,也有 Vue Router 的路由解析邏輯。掌握了這兩點(diǎn),你就能:

保證打包目錄干凈、無冗余模板

正確配置服務(wù)器根目錄和單頁應(yīng)用回退

根據(jù)場景靈活切換 History/Hash 模式

從此,無論在本地調(diào)試還是在線上發(fā)布,都能穩(wěn)穩(wěn)啟動,再也不用靠“刪檔”才能爽跑!如果你也碰到過類似詭異白屏,趕緊對照本文排查一遍吧~

到此這篇關(guān)于Vue3本地打包啟動出現(xiàn)白屏的解決思路詳解的文章就介紹到這了,更多相關(guān)Vue打包啟動出現(xiàn)白屏內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue init webpack 項(xiàng)目初始化失敗問題

    vue init webpack 項(xiàng)目初始化失敗問題

    在使用Vue-cli搭建項(xiàng)目時(shí),可能會遇到依賴無法顯示版本號的問題,首先檢查環(huán)境變量配置是否正確,確保vue-init的安裝目錄被正確添加到path中,若問題仍未解決,嘗試卸載并重新安裝webpack,確保在正確的項(xiàng)目路徑下執(zhí)行npm install和npm run dev命令
    2024-09-09
  • Vue組件間通信 Vuex的用法解析

    Vue組件間通信 Vuex的用法解析

    這篇文章主要介紹了Vue組件間通信-Vuex,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • vue中動態(tài)引進(jìn)組件、動態(tài)引進(jìn)js模塊文件方式

    vue中動態(tài)引進(jìn)組件、動態(tài)引進(jìn)js模塊文件方式

    本文詳細(xì)介紹了Vue中動態(tài)引入組件和JS模塊文件的方法與應(yīng)用場景,包括包括通過動態(tài)引入組件和解決組件資源浪費(fèi)問題is通過動態(tài)引入JS模塊文件is優(yōu)化解決第三方業(yè)務(wù)個(gè)性化需求導(dǎo)致的資源加載浪費(fèi)問題為Vue開發(fā)提供了優(yōu)化方案
    2026-05-05
  • 詳解Nuxt.js中使用Element-UI填坑

    詳解Nuxt.js中使用Element-UI填坑

    這篇文章主要介紹了詳解Nuxt.js中使用Element-UI填坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • vuex如何在非組件中調(diào)用mutations方法

    vuex如何在非組件中調(diào)用mutations方法

    這篇文章主要介紹了vuex如何在非組件中調(diào)用mutations方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue引入elementUi后打開頁面報(bào)錯(cuò)Uncaught?TypeError的解決方式

    vue引入elementUi后打開頁面報(bào)錯(cuò)Uncaught?TypeError的解決方式

    這篇文章主要給大家介紹了關(guān)于vue引入elementUi后打開頁面報(bào)錯(cuò)Uncaught?TypeError:?Cannot?read?properties?of?undefined(reading?‘prototype‘)的解決方式,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Vue使用CDN引用項(xiàng)目組件,減少項(xiàng)目體積的步驟

    Vue使用CDN引用項(xiàng)目組件,減少項(xiàng)目體積的步驟

    這篇文章主要介紹了Vue使用CDN引用項(xiàng)目組件,減少項(xiàng)目體積的步驟,幫助大家提高項(xiàng)目加載速度,感興趣的朋友可以了解下
    2020-10-10
  • vxe-table動態(tài)列篩選以及篩選項(xiàng)動態(tài)變化的問題及解決

    vxe-table動態(tài)列篩選以及篩選項(xiàng)動態(tài)變化的問題及解決

    這篇文章主要介紹了vxe-table動態(tài)列篩選以及篩選項(xiàng)動態(tài)變化的問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Vue用mixin合并重復(fù)代碼的實(shí)現(xiàn)

    Vue用mixin合并重復(fù)代碼的實(shí)現(xiàn)

    這篇文章主要介紹了Vue用mixin合并重復(fù)代碼的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • vue?element表格某一列內(nèi)容過多,超出省略號顯示的實(shí)現(xiàn)

    vue?element表格某一列內(nèi)容過多,超出省略號顯示的實(shí)現(xiàn)

    這篇文章主要介紹了vue?element表格某一列內(nèi)容過多,超出省略號顯示的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論

南城县| 故城县| 谢通门县| 麻阳| 台南市| 师宗县| 新平| 镇巴县| 璧山县| 慈利县| 象山县| 闻喜县| 岑溪市| 周至县| 许昌市| 武隆县| 维西| 泰安市| 怀化市| 泽库县| 容城县| 南靖县| 建瓯市| 北安市| 凌海市| 喀喇沁旗| 宁化县| 开封市| 商丘市| 平江县| 荣昌县| 英山县| 平顶山市| 南部县| 右玉县| 顺昌县| 涿州市| 神农架林区| 石楼县| 宜君县| 金乡县|