亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue3+Vite項(xiàng)目部署后刷新白屏問(wèn)題的解決方法

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

問(wèn)題現(xiàn)象

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

  • 直接訪(fǎng)問(wèn)首頁(yè)正常
  • 通過(guò)路由跳轉(zhuǎn)頁(yè)面正常
  • 手動(dòng)刷新頁(yè)面時(shí)出現(xiàn)白屏
  • 控制臺(tái)可能顯示 404 錯(cuò)誤或資源加載失敗

核心原因分析

1. 路由模式與服務(wù)器配置沖突

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

這種模式需要服務(wù)器配合處理非根路徑的請(qǐng)求,否則刷新時(shí)服務(wù)器會(huì)嘗試查找不存在的物理文件。

2. Vite 基礎(chǔ)路徑配置

// 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. 驗(yàn)證配置一致性

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

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

2. 服務(wù)器配置示例

Nginx 配置

location /this/is/a/path/ {
  # 指向打包后的目錄
  alias /your/project/dist/;
  try_files $uri $uri/ /this/is/a/path/index.html;
  
  # 開(kāi)啟 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. 驗(yàn)證資源加載路徑

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

  • JS/CSS 文件路徑
  • 圖標(biāo)等靜態(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', // 將資源分類(lèi)到 static 目錄
    rollupOptions: {
      output: {
        assetFileNames: 'static/[name]-[hash][extname]'
      }
    }
  }
})

常見(jiàn)錯(cuò)誤排查表

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

進(jìn)階優(yōu)化

動(dòng)態(tài)路徑配置

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

自定義 404 頁(yè)面處理

// 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);
  }
}

原理圖示

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

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

相關(guān)文章

  • 解決vue更新路由router-view復(fù)用組件內(nèi)容不刷新的問(wèn)題

    解決vue更新路由router-view復(fù)用組件內(nèi)容不刷新的問(wèn)題

    今天小編就為大家分享一篇解決vue更新路由router-view復(fù)用組件內(nèi)容不刷新的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • vue源碼解析之事件機(jī)制原理

    vue源碼解析之事件機(jī)制原理

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

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

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

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

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

    使用Vue編寫(xiě)一個(gè)日期選擇器

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

    vue雙向綁定及觀(guān)察者模式詳解

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

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

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

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

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

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

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

    詳解vue-cli下ESlint 配置說(shuō)明

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

最新評(píng)論