Vue3 本地打包啟動白屏解決思路!! !

“為什么我訪問 http://127.0.0.1:5501/index.html 白屏,刪了 index.html 再訪問 / 就又活過來了?”
—— 你的項目與 SPA 路由的“宮斗大戲”


一、問題復現

  • 場景

    1. 本地通過 VSCode Live Server(或其他靜態服務器)啟動了打包后的 Vue3 應用目錄(假設為 dist/)。

    2. 訪問 http://127.0.0.1:5501/index.html,頁面一片空白(白屏)。

    3. 刪掉根目錄下的 index.html,再次訪問 http://127.0.0.1:5501/,頁面又瞬間正常渲染了!

  • 本能誤區

    • “是不是文件丟了?是不是打包壞了?”

    • 反復打包、重裝依賴,也無濟于事。


二、幕后黑手:靜態掛載 & 路由攔截雙重鍋

1. 靜態服務器掛載順序

多數本地靜態服務器(Live Server、http-server、serve 等)默認會:

  1. 優先尋找請求路徑對應的靜態文件(如 index.html.js.css 等)。

  2. 若文件存在,則直接返回該文件,不再回退到其它目錄。

  3. 若文件不存在,則“fallback”到根目錄的 index.html(如果開啟了單頁應用回退)。

因果分析

  • 當你在項目根目錄下也放置了一份 “空白” index.html(比如不小心把源碼的空白模板也上傳進 dist/),訪問 /index.html 時,服務器把它當作靜態文件直接返回,就一片白。

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

2. Vue Router History 模式“誤判”

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

  • 訪問 http://…/index.html

    • 瀏覽器加載了文件后,Vue 啟動時會把當前 URL 路徑 /index.html 當成一個路由去匹配。

    • 由于通常路由表里并沒有對應 /index.html 的條目,結果匹配失敗,組件不渲染,就白屏了。

  • 訪問 http://…/

    • 路徑是 /,正好匹配首頁組件,應用正常啟動。


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

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

1. Nginx 標準配置

server {listen       80;server_name  your.domain.com;            # 替換成你的域名或 IP# ① 指定根目錄為打包輸出root   /var/www/myapp;                   # 假設你把 dist 放這里index  index.html;# ② 靜態資源走文件系統,開啟長緩存location ~* \.(js|css|png|jpg|jpeg|gif|svg|ico|ttf|woff2?)$ {expires    30d;access_log off;}# ③ 單頁應用路由回退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(本地調試)快速修復

在項目根目錄下新建或修改 .vscode/settings.json

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

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


四、補充技巧

  1. 避免手動地址欄寫 index.html
    直接訪問 / 即可,現代服務器都會自動加載 index.html

  2. Hash 模式降級
    如果你不想配置服務器路由回退,可在 Vue Router 中改為:

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

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

  3. CI/CD 自動發布
    在打包完成后,結合 GitHub Actions / GitLab CI 自動將 dist/ 同步到服務器或 CDN,避免漏傳、錯傳文件。


五、結語

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

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

  • 正確配置服務器根目錄和單頁應用回退

  • 根據場景靈活切換 History/Hash 模式

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

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

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

相關文章

數字人(2):數字人技術全景透視(2025演進版)

隨著人工智能技術的迅猛發展,數字人技術發展也是一日千里。站在當下,著眼未來,我們一起在回眸透視過去的基礎上,一起共同眺望數字人技術的未來。 一、數字人技術體系重構 我們可以用三維定義對數字人技術進行框架重構 維度 技術內涵 典型特征 物理層 人體數字化建模技術 …

小剛說C語言刷題——1035 判斷成績等級

1.題目描述 輸入某學生成績,如果 86分以上(包括 86分)則輸出 VERY GOOD ,如果在 60到 85之間的則輸出 GOOD (包括 60和 85),小于 60 的則輸出 BAD。 輸入 輸入只有一行,包括 1個整數。 輸出 輸出只有一行&#xf…

React-在使用map循環數組渲染列表時須指定唯一且穩定值的key

在渲染列表的時候,我們須給組件或者元素分配一個唯一值的key, key是一個特殊的屬性,不會最終加在元素上面,也無法通過props.key來獲取,僅在react內部使用。react中的key本質是服務于diff算法, 它的默認值是null, 在diff算法過程中…

Zookeeper的通知機制是什么?

大家好,我是鋒哥。今天分享關于【Zookeeper的通知機制是什么?】面試題。希望對大家有幫助; Zookeeper的通知機制是什么? 1000道 互聯網大廠Java工程師 精選面試題-Java資源分享網 Zookeeper 的通知機制是其核心特性之一&#xf…

【LangChain實戰】構建下一代智能問答系統:從RAG架構到生產級優化

打破傳統問答系統的次元壁 當ChatGPT在2022年掀起AI革命時,開發者們很快發現一個殘酷現實:通用大模型在專業領域的表現如同拿著地圖的盲人,既無法理解企業私有數據,也無法保證事實準確性。這催生了RAG(檢索增強生成&a…

UDS中功能尋址可以請求多幀數據嘛?當ECU響應首幀后,診斷儀是通過物理尋址發送流控幀嘛?

文章目錄 1. 前言??1.1 功能尋址是否支持請求多幀數據?1.2 ECU發送首幀(FF)后,診斷儀如何發送流控幀(FC)?1.3 協議依據(ISO 14229-1)1.4 實際應用注意事項總結1. 前言?? 在UDS(Unified Diagnostic Services)協議中,功能尋址與物理尋址的使用規則以及多幀數據傳…

PHP異常處理__Throwable

在 PHP 里,Throwable 是一個極為關鍵的接口,自 PHP 7 起被引入。它為錯誤和異常處理構建了一個統一的框架。下面會詳細介紹 Throwable 的相關內容。 1. 基本概念 Throwable 是 Exception 和 Error 的父接口。在 PHP 7 之前,異常&#xff08…

無需訓練的具身導航探索!TRAVEL:零樣本視覺語言導航中的檢索與對齊

作者: Navid Rajabi, Jana Kosecka 單位:喬治梅森大學計算機科學系 論文標題:TRAVEL: Training-Free Retrieval and Alignment for Vision-and-Language Navigation 論文鏈接:https://arxiv.org/pdf/2502.07306 主要貢獻 提出…

Vue3+Vite+TypeScript+Element Plus開發-22.客制Table組件

系列文檔目錄 Vue3ViteTypeScript安裝 Element Plus安裝與配置 主頁設計與router配置 靜態菜單設計 Pinia引入 Header響應式菜單縮展 Mockjs引用與Axios封裝 登錄設計 登錄成功跳轉主頁 多用戶動態加載菜單 Pinia持久化 動態路由 -動態增加路由 動態路由-動態刪除…

Java讀取JSON文件并將其中元素轉為JSON對象輸出

🤟致敬讀者 🟩感謝閱讀🟦笑口常開🟪生日快樂?早點睡覺 📘博主相關 🟧博主信息🟨博客首頁🟫專欄推薦🟥活動信息 文章目錄 Java讀取JSON文件并將其中元素轉為JSON對象輸…

Spring Boot自動配置原理深度解析:從條件注解到spring.factories

大家好!今天我們來深入探討Spring Boot最神奇的特性之一——自動配置(Auto-configuration)。這個功能讓Spring Boot如此受歡迎,因為它大大簡化了我們的開發工作。讓我們一起來揭開它的神秘面紗吧!👀 🌟 什么是自動配置…

【ELF2學習板】利用OpenMP采用多核并行技術提升FFTW的性能

目錄 引言 OpenMP簡介 編譯OpenMP支持的FFTW庫 部署與測試 測試程序 程序部署 測試結果 結語 引言 在前面已經介紹了在ELF2開發板上運行FFTW計算FFT。今天嘗試利用RK3588的多核運算能力來加速FFT運算。FFTW利用多核能力可以考慮使用多線程或者OpenMP。今天介紹一下Ope…

2000-2017年各省城市天然氣供氣總量數據

2000-2017年各省城市天然氣供氣總量數據 1、時間:2000-2017年 2、來源:國家統計局、能源年鑒 3、指標:行政區劃代碼、城市、年份、城市天然氣供氣總量 4、范圍:31省 5、指標說明:城市天然氣供氣總量是指在一定時間…

Hadoop的三大結構及其作用?

Hadoop是一個分布式存儲和計算框架,其三大核心組件是HDFS(Hadoop Distributed File System)、YARN(Yet Another Resource Negotiator)和MapReduce。它們各自有著重要的作用,共同構成了Hadoop生態系統的基礎…

【AI論文】ColorBench:視覺語言模型能否看到并理解多彩的世界?一個全面的色彩感知、推理和魯棒性基準測試

摘要:顏色在人類感知中起著重要作用,通常在視覺推理中提供關鍵線索。 然而,尚不清楚視覺語言模型(VLMs)是否以及如何像人類一樣感知、理解和利用顏色。 本文介紹了ColorBench,這是一個精心設計的創新基準&a…

Python番外——常用的包功能講解和分類組合

目錄 1. Web開發框架與工具 2. 數據處理與分析 3. 網絡請求與爬蟲 4. 異步編程 5. 數據庫操作 6. 圖像與多媒體處理 7. 語言模型與NLP 8. 安全與加密 9. 配置與工具 10. 其他工具庫 11.典型組合場景 此章節主要是記錄我所使用的包,以及模塊。方便供自己方…

華碩原廠系統槍神9/9p超竟版-WIN11原裝開箱出廠系統安裝

華碩原廠系統槍神9/9p超竟版-WIN11-24H2-專業工作站版本安裝可帶F12-ASUSRecovery恢復功能 適用機型: G635LX、G635LW、G835LX、G835LW、G615LW、G615LP、G615LM、G615LH G815LW、G815LP、G815LM、G815LH、G635LR、G835LR、G615LR、G815LR 遠程恢復安裝&#xff…

拉取windows的docker鏡像轉到服務器上構建服務鏡像

在windows上將拉取ubuntu的docker鏡像轉到服務器上 1.要求 1.1 要求windows和服務器安裝好docker 2.拉取ubuntu鏡像到windows(dos操作,可能需要連接到外網) 一旦你選擇了一個合適的基礎鏡像,你可以使用docker pull命令從Docke…

T1結構像+RS-fMRI影像處理過程記錄(數據下載+Matlab工具箱+數據處理)

最近需要仿真研究T1結構像RS-fMRI影像融合處理輸出目標坐標的路線可行性。就此機會記錄下來。 為了完成驗證目標處理,首先需要有數據,然后需要準備對應的處理平臺和工具箱,進行一系列。那么開始記錄~ 前言: 為了基于種子點的功能連…

Nginx-前言

nginx是什么? 輕量級,開源免費的web服務器軟件,服務器安裝nginx,服務器則成為web服務器 nginx的穩定版版本號: 偶數版本 nginx的相關目錄: /etc/nginx/nginx.conf nginx的主配置文件 /etc/nginx/ngi…