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

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)文章

  • vue3動態(tài)加載組件以及動態(tài)引入組件詳解

    vue3動態(tài)加載組件以及動態(tài)引入組件詳解

    ?平常的vue項(xiàng)目開發(fā),已經(jīng)很難遇見一千行,甚至幾千行代碼的頁面了,畢竟大家都會去拆分組件,下面這篇文章主要給大家介紹了關(guān)于vue3動態(tài)加載組件以及動態(tài)引入組件的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • vue 獲取url里參數(shù)的兩種方法小結(jié)

    vue 獲取url里參數(shù)的兩種方法小結(jié)

    這篇文章主要介紹了vue 獲取url里參數(shù)的兩種方法小結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue3選項(xiàng)式api如何監(jiān)控?cái)?shù)組變化

    vue3選項(xiàng)式api如何監(jiān)控?cái)?shù)組變化

    這篇文章主要介紹了vue3選項(xiàng)式api如何監(jiān)控?cái)?shù)組變化問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue項(xiàng)目中引入noVNC遠(yuǎn)程桌面的方法

    vue項(xiàng)目中引入noVNC遠(yuǎn)程桌面的方法

    下面小編就為大家分享一篇vue項(xiàng)目中引入noVNC遠(yuǎn)程桌面的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 給vue項(xiàng)目添加ESLint的詳細(xì)步驟

    給vue項(xiàng)目添加ESLint的詳細(xì)步驟

    本篇文章主要介紹了給vue項(xiàng)目添加ESLint的詳細(xì)步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Vue動態(tài)類的幾種使用方法總結(jié)

    Vue動態(tài)類的幾種使用方法總結(jié)

    這篇文章主要介紹了Vue動態(tài)類的幾種使用方法總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue中設(shè)置滾動條方式

    vue中設(shè)置滾動條方式

    這篇文章主要介紹了在vue中設(shè)置滾動條的方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue實(shí)現(xiàn)圖片滑動驗(yàn)證

    vue實(shí)現(xiàn)圖片滑動驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)圖片滑動驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 解決Vue項(xiàng)目打包后打開index.html頁面顯示空白以及圖片路徑錯(cuò)誤的問題

    解決Vue項(xiàng)目打包后打開index.html頁面顯示空白以及圖片路徑錯(cuò)誤的問題

    這篇文章主要介紹了解決Vue項(xiàng)目打包后打開index.html頁面顯示空白以及圖片路徑錯(cuò)誤的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • vue?eslint報(bào)錯(cuò):Component?name?“xxxxx“?should?always?be?multi-word.eslintvue的4種解決方案

    vue?eslint報(bào)錯(cuò):Component?name?“xxxxx“?should?always?be?

    新手在使用腳手架時(shí)總會報(bào)各種錯(cuò),下面這篇文章主要給大家介紹了關(guān)于vue?eslint報(bào)錯(cuò):Component?name?“xxxxx“?should?always?be?multi-word.eslintvue的4種解決方案,需要的朋友可以參考下
    2022-07-07

最新評論