Vue 项目打包后浏览器页面空白

这里讲两种 Vue 项目出现此问题后的解决方法。

Vite 项目

Vite 项目出现打包后浏览器页面空白的问题,首先打开“开发者工具”,在控制台处查看错误信息。

从错误信息中可以看到,我们项目的资源文件没有正确加载。

解决方法:在 vue.config.js 中添加这样一行代码。 base: "./"

添加后再次打包即可正常显示。


如果依旧无法解决空白页面,请检查路由配置,是否使用官方示例中的 history: createMemoryHistory()

我自己的项目是使用 createWebHashHistory()createMemoryHistory() 均可。


如果打包后在 idea 中右键 dist/index.html -> open in -> Browser -> Edge或谷歌等浏览器,如果这样能正常显示,但是在文件管理中打开 dist/index.html 无法正常显示,可以下载 @vitijs/plugin-legacy 插件。

先检查自己是否安装 @vitijs/plugin-legacy 插件

npm list @vitejs/plugin-legacy

如果显示 empty,则进行安装。

npm install @vitejs/plugin-legacy

安装成功后进行在 vue.config.js 中添加以下配置。

在文件顶部添加

import legacy from '@vitejs/plugin-legacy'

在 export default defineConfig()内添加下面代码

export default defineConfig({
    // ...
    plugins: [
        // 其他插件
        legacy({
            targets: ["defaults", "not IE 11"]
        })
    ]
    // ...
})

最后贴一张我自己的配置文件图片,防止读者不知道这段代码添加到哪里。


如果在进行以上配置后成功打包,但是存在图片等资源丢失的情况,请看 Vite项目打包后图片等资源丢失的解决方案

Vue-cli 项目

我第一次创建 Vue 项目便是使用 Vue-cli,也是遇到了打包后页面空白的问题,因为 Vue-cli 项目中默认隐藏了 Webpack 配置,导致我根本找不到网上其他教程中所说的 webpack.config.js 文件,即便是自己创建 vue.config.js 文件也没有解决。

不过在我自己摸索下,还是成功解决了问题。

因为两个的报错原因是一样的,这里就不放 Vue-cli 项目的报错信息了。

在项目文件夹下的 config/index.js 文件内找到 assetsPublicPath: '/',将/ 修改为 ./ 即可。

不过这样的方式并不推荐,更推荐的方式是使用 vue.config.js 来进行自定义配置。

滚动至顶部