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

Vue3+Vite項目部署后刷新白屏問題的解決方法

 更新時間:2025年03月25日 16:16:57   作者:從文處安  
Vue3 + Vite 項目部署后出現(xiàn)了手動刷新頁面時出現(xiàn)白屏的問題,下面小編就來和大家探討一下白屏出現(xiàn)的原因以及具體的解決方法,需要的可以參考下

問題現(xiàn)象

使用 Vue3 + Vite + vue-router 的項目在本地開發(fā)正常,但打包部署到服務器后:

  • 直接訪問首頁正常
  • 通過路由跳轉頁面正常
  • 手動刷新頁面時出現(xiàn)白屏
  • 控制臺可能顯示 404 錯誤或資源加載失敗

核心原因分析

1. 路由模式與服務器配置沖突

Vue-router 使用 createWebHistory(),實際使用的是瀏覽器原生 History API。

這種模式需要服務器配合處理非根路徑的請求,否則刷新時服務器會嘗試查找不存在的物理文件。

2. Vite 基礎路徑配置

// vite.config.js
export default defineConfig({
  base: '/this/is/a/path/', // 該路徑必須與部署目錄完全一致
})

3. Vue Router 配置

const router = createRouter({
  history: createWebHistory('/this/is/a/path/'), // 與 Vite base 配置一致
  routes
})

解決方案

1. 驗證配置一致性

配置項正確示例驗證方法
Vite base/this/is/a/path/檢查打包后的 index.html 資源路徑
Router historycreateWebHistory('/this/is/a/path/')檢查路由初始化代碼
實際部署路徑http://domain.com/this/is/a/path/檢查服務器部署目錄

注意:所有路徑配置必須保持完全一致,特別注意結尾的 /

2. 服務器配置示例

Nginx 配置

location /this/is/a/path/ {
  # 指向打包后的目錄
  alias /your/project/dist/;
  try_files $uri $uri/ /this/is/a/path/index.html;
  
  # 開啟 gzip
  gzip on;
  gzip_types text/plain application/xml application/javascript text/css;
}

Apache 配置(.htaccess)

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /this/is/a/path/
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /this/is/a/path/index.html [L]
</IfModule>

3. 驗證資源加載路徑

打開瀏覽器開發(fā)者工具,檢查以下資源是否正常加載:

  • JS/CSS 文件路徑
  • 圖標等靜態(tài)資源
  • 異步加載的 chunk 文件

正確路徑示例:

https://your-domain.com/this/is/a/path/assets/index.123abc.js

4. 處理靜態(tài)資源 404

如果出現(xiàn)靜態(tài)資源 404,可嘗試以下方案:

// vite.config.js
export default defineConfig({
  build: {
    assetsDir: 'static', // 將資源分類到 static 目錄
    rollupOptions: {
      output: {
        assetFileNames: 'static/[name]-[hash][extname]'
      }
    }
  }
})

常見錯誤排查表

錯誤現(xiàn)象可能原因解決方案
所有頁面顯示 404服務器未指向正確目錄檢查服務器配置的 root/alias
僅刷新時白屏缺少 try_files/rewrite 規(guī)則添加 history fallback 配置
部分資源 404base 路徑不一致統(tǒng)一所有路徑配置
控制臺顯示路由錯誤路由配置路徑沖突檢查路由的 path 定義
開發(fā)環(huán)境正常,生產環(huán)境異常環(huán)境變量未正確處理檢查 .env 文件配置

進階優(yōu)化

動態(tài)路徑配置

// vite.config.js
export default defineConfig({
  base: process.env.NODE_ENV === 'production' 
    ? '/this/is/a/path/' 
    : '/'
})

自定義 404 頁面處理

// router.js
const router = createRouter({
  history: createWebHistory('/this/is/a/path/'),
  routes: [
    // ...
    { 
      path: '/:pathMatch(.*)*', 
      component: () => import('@/views/404.vue')
    }
  ]
})

部署路徑健康檢查

// main.js
if (import.meta.env.PROD) {
  const expectedBase = '/this/is/a/path/';
  const currentPath = window.location.pathname;
  
  if (!currentPath.startsWith(expectedBase)) {
    window.location.replace(expectedBase);
  }
}

原理圖示

瀏覽器請求 -> 服務器 -> 檢查物理文件
                ├── 存在 -> 返回文件
                └── 不存在 -> 返回 index.html (SPA 入口)

到此這篇關于Vue3+Vite項目部署后刷新白屏問題的解決方法的文章就介紹到這了,更多相關Vue3刷新白屏問題解決內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決vue更新路由router-view復用組件內容不刷新的問題

    解決vue更新路由router-view復用組件內容不刷新的問題

    今天小編就為大家分享一篇解決vue更新路由router-view復用組件內容不刷新的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue源碼解析之事件機制原理

    vue源碼解析之事件機制原理

    這篇文章主要介紹了vue源碼解析之事件機制原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 使用vue-cli+webpack搭建vue開發(fā)環(huán)境的方法

    使用vue-cli+webpack搭建vue開發(fā)環(huán)境的方法

    這篇文章主要介紹了使用vue-cli+webpack搭建vue開發(fā)環(huán)境的方法,需要的朋友可以參考下
    2017-12-12
  • vue data恢復初始化數(shù)據(jù)的實現(xiàn)方法

    vue data恢復初始化數(shù)據(jù)的實現(xiàn)方法

    今天小編就為大家分享一篇vue data恢復初始化數(shù)據(jù)的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 使用Vue編寫一個日期選擇器

    使用Vue編寫一個日期選擇器

    這篇文章主要為大家詳細介紹了如何使用Vue編寫一個簡單的日期選擇器,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-12-12
  • vue雙向綁定及觀察者模式詳解

    vue雙向綁定及觀察者模式詳解

    這篇文章主要介紹了vue雙向綁定及觀察者模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • vue使用showdown并實現(xiàn)代碼區(qū)域高亮的示例代碼

    vue使用showdown并實現(xiàn)代碼區(qū)域高亮的示例代碼

    這篇文章主要介紹了vue使用showdown并實現(xiàn)代碼區(qū)域高亮的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • vue 實現(xiàn)Web端的定位功能 獲取經緯度

    vue 實現(xiàn)Web端的定位功能 獲取經緯度

    這篇文章主要介紹了vue 實現(xiàn)Web端的定位功能獲取經緯度,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Vue?列表過濾與排序的實現(xiàn)

    Vue?列表過濾與排序的實現(xiàn)

    這篇文章主要介紹了Vue?列表過濾與排序的實現(xiàn),文章圍繞主題展開詳細的內容介紹,具有一定的參考價值需要的小伙伴可以參考一下
    2022-05-05
  • 詳解vue-cli下ESlint 配置說明

    詳解vue-cli下ESlint 配置說明

    這篇文章主要介紹了詳解vue-cli下ESlint 配置說明,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09

最新評論