vue 打包之后为空白页(路径问题)

本文介绍了Vue项目打包后出现空白页的问题及解决方法,主要分为两部分:一是调整资源引用路径,二是解决由模式设置和浏览器兼容性引起的白屏。

vue 打包之后为空白页

一、打包后的dist目录下的文件引用路径不对,找不到资源导致白屏(80%都是这么导致的)

1.修改config > index.js里的assetsPublicPath'/’成为'./'

dev: {
    assetsSubDirectory: 'static',
    assetsPublicPath: './',  //将这里改成./
    proxyTable: {},
    host: 'localhost',
    port: 8080,
    autoOpenBrowser: false,
    errorOverlay: true,
    notifyOnErrors: true,
    poll: false,
    devtool: 'cheap-module-eval-source-map',
    cacheBusting: true,
    cssSourceMap: true
  },

2.在build > util.js 里找到ExtractTextPlugin.extract,加上publicPath: '../../'

if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader',
        publicPath: '../../'  //新增这一行
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }

在打包一下就可以了,也可以直接扔到服务器里了,

二、 剩下的20% :

1.可能是把默认模式的hash改成了history了,
改回默认的hash就可以
如果非要使用history模式的话,要在服务器加一个所有情况的候选资源:如果URL匹配不到任何静态资源,则应该返回一个index.html,这个页面就是你app依赖页面。

2.在项目中使用了es6语法,一些浏览器不支持es6,造成编译错误
这种情况可以:

1.  npm install --save-dev babel-preset-es2015
2.  npm install --save-dev babel-preset-stage-3
### 资源路径配置 在 Vue 3 项目中,打包后页面空白通常是由于资源路径配置不正确导致的。如果使用 Vue CLI 创建的项目,可以在 `vue.config.js` 文件中设置 `publicPath` 为 `'./'`,以确保资源路径是相对的。如果项目中没有 `vue.config.js` 文件,可以在项目根目录下创建一个,并添加以下代码: ```javascript module.exports = { publicPath: './' } ``` 这将确保打包后的资源路径以相对路径的形式引入,从而避免页面空白的问题[^1]。 ### 本地预览问题 如果在本地直接打开 `index.html` 文件仍然遇到页面空白,可能是因为浏览器的安全限制(如 CORS 策略)。此时,可以通过安装 `serve` 模块来启动一个本地服务器,以便正确预览打包后的页面。执行以下命令安装 `serve` 并启动服务器: ```bash npm install -g serve cd dist serve -s -l 5000 ``` 这样,可以通过访问 `http://localhost:5000` 来查看打包后的页面[^2]。 ### Vite 项目的配置 对于使用 Vite 创建的 Vue 3 项目,可以在 `vite.config.ts` 文件中设置 `base` 为 `'./'`,以确保资源路径是相对的。添加以下代码到 `vite.config.ts` 文件中: ```typescript import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueDevTools from 'vite-plugin-vue-devtools' export default defineConfig({ base: './', plugins: [ vue(), vueDevTools(), ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, } }) ``` 这将确保打包后的资源路径以相对路径的形式引入,从而避免页面空白的问题[^2]。 ### 构建输出目录 如果需要修改 Vue 3 项目的打包输出目录,可以在 `vue.config.js` 文件中设置 `outputDir`。例如,将输出目录更改为 `build`: ```javascript module.exports = { outputDir: 'build' } ``` 这将把打包后的文件输出到 `build` 目录下[^3]。 ### 静态资源目录 为了进一步优化打包配置,可以在 `vue.config.js` 文件中设置 `assetsDir`,以指定静态资源的存放目录。例如,将静态资源存放在 `assets` 目录下: ```javascript module.exports = { assetsDir: 'assets' } ``` 这将把静态资源(如 `js`, `css`, `img`, `fonts`)存放在 `assets` 目录下[^3]。 ### 总结 通过以上配置,可以有效解决 Vue 3 打包后页面空白的问题。确保资源路径正确,使用本地服务器预览打包后的页面,并根据需要调整输出目录和静态资源目录。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值