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

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

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

問題現(xiàn)象

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

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

核心原因分析

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

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

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

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. 驗證配置一致性

配置項正確示例驗證方法
Vite base/this/is/a/path/檢查打包后的 index.html 資源路徑
Router historycreateWebHistory('/this/is/a/path/')檢查路由初始化代碼
實際部署路徑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;
  
  # 開啟 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 文件路徑
  • 圖標(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', // 將資源分類到 static 目錄
    rollupOptions: {
      output: {
        assetFileNames: 'static/[name]-[hash][extname]'
      }
    }
  }
})

常見錯誤排查表

錯誤現(xiàn)象可能原因解決方案
所有頁面顯示 404服務(wù)器未指向正確目錄檢查服務(wù)器配置的 root/alias
僅刷新時白屏缺少 try_files/rewrite 規(guī)則添加 history fallback 配置
部分資源 404base 路徑不一致統(tǒng)一所有路徑配置
控制臺顯示路由錯誤路由配置路徑?jīng)_突檢查路由的 path 定義
開發(fā)環(huán)境正常,生產(chǎ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);
  }
}

原理圖示

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

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

相關(guān)文章

  • 前端vue3?setup使用教程

    前端vue3?setup使用教程

    這篇文章主要為大家介紹了前端vue3架構(gòu)setup使用教程,詳細(xì)介紹?setup?的用法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-02-02
  • VUE側(cè)邊導(dǎo)航欄實現(xiàn)篩選過濾的示例代碼

    VUE側(cè)邊導(dǎo)航欄實現(xiàn)篩選過濾的示例代碼

    本文主要介紹了VUE側(cè)邊導(dǎo)航欄實現(xiàn)篩選過濾的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Vue2項目中對百度地圖的封裝使用詳解

    Vue2項目中對百度地圖的封裝使用詳解

    近期項目需求相關(guān)地圖限定使用百度地圖,功能比較簡單,下面這篇文章主要給大家介紹了關(guān)于Vue2項目中對百度地圖的封裝使用的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • vue3中vue-meta的使用方法解析

    vue3中vue-meta的使用方法解析

    這篇文章主要介紹了vue3中vue-meta的使用方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue彈窗Dialog最佳使用方案實戰(zhàn)

    Vue彈窗Dialog最佳使用方案實戰(zhàn)

    這篇文章主要為大家介紹了極度舒適的Vue彈窗Dialog最佳使用方案實戰(zhàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • 在vue-cli創(chuàng)建的項目中使用sass操作

    在vue-cli創(chuàng)建的項目中使用sass操作

    這篇文章主要介紹了在vue-cli創(chuàng)建的項目中使用sass操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue element-admin權(quán)限控制之按鈕使用

    Vue element-admin權(quán)限控制之按鈕使用

    這篇文章主要介紹了Vue element-admin權(quán)限控制之按鈕使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • vue打包后的線上部署Apache、nginx全過程

    vue打包后的線上部署Apache、nginx全過程

    這篇文章主要介紹了vue打包后的線上部署Apache、nginx全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Vue.js上下滾動加載組件的實例代碼

    Vue.js上下滾動加載組件的實例代碼

    本篇文章主要介紹了Vue.js上下滾動加載組件的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • uni-app中vue3表單校驗失敗的問題及解決方法

    uni-app中vue3表單校驗失敗的問題及解決方法

    最近遇到這樣的問題在app中使用uni-forms表單,并添加校驗規(guī)則,問題是即使輸入內(nèi)容,表單校驗依然失敗,本文給大家分享uni-app中vue3表單校驗失敗的問題及解決方法,感興趣的朋友一起看看吧
    2023-12-12

最新評論

上蔡县| 靖安县| 新干县| 库伦旗| 海盐县| 靖安县| 永春县| 黎城县| 合阳县| 儋州市| 瑞金市| 米泉市| 樟树市| 平昌县| 昌邑市| 陵川县| 龙江县| 福贡县| 凤山市| 鸡东县| 兴海县| 汕头市| 会理县| 乐陵市| 台安县| 舒城县| 新平| 大邑县| 莲花县| 滦平县| 郧西县| 鄂尔多斯市| 枣庄市| 广宗县| 芦溪县| 彰化县| 普兰店市| 南川市| 合肥市| 溧水县| 嘉善县|