vue打包后出现空白页的原因及解决方式详解

 更新时间:2022年07月24日 16:44:56   作者:温情key  
在项目中很多时候需要用到vue打包成html不需要放在服务器上就能浏览,根据官网打包出来的html直接打开是显示空白,下面这篇文章主要给大家介绍了关于vue打包后出现空白页的原因及解决方式的相关资料,需要的朋友可以参考下

路由模式 history

新建项目什么都不动,路由模式:history, 直接npm run build打包

打包之后,直接打开dist文件里面的ndex.html可以看到页面是空白的,控制台是这样的。

再看看网页源码, 对比dist文件夹结构可以看到资源路径的引入是错误的,应该用'./'而不是'/'

那怎么修改打包之后的路径呢?查看vue-cli官网配置参考中的publicPath

我们只需要在和package.json同级的地方新增一个vue.config.js文件,将路径修改为相对路径'./'

// vue.config.js
module.exports = {
    publicPath: './',
}

再次打包, 页面不是空白了,但还有很多东西没显示完,正常的页面是这个样子

打包之后是这样子

点击About进行路由跳转是这样子

路由模式 hash

改一下路由模式,找到router/index.js文件, 将history修改为hash, 再进行打包

// router/index.js
const router = new VueRouter({
  mode: 'hash',
  base: process.env.BASE_URL,
  routes
})

页面显示和路由跳转就都可以了

总结

1. 修改路径

// vue.config.js
module.exports = {
    publicPath: './',
}

2. 更改路由模式

// router/index.js
const router = new VueRouter({
  mode: 'hash',
  base: process.env.BASE_URL,
  routes
})

路由模式拓展

路由的hash和history模式的区别

  1. 首先hash模式url带#号,history不带#号
  2. hash模式前端路由修改的是hash值(#及以后),对后端没影响,因此改变hash也不会重新加载页面,比如修改为了不存在的#123页面,页面不会跳转;
    history模型刚好相反,没有对应的页面就会出现404

打包路由选择

  • 前端测试用 hash 模式
  • 项目上线不想要url带#号的话使用history模式,不过使用history模式需要与后端沟通,需后端配置

到此这篇关于vue打包后出现空白页的原因及解决方式的文章就介绍到这了,更多相关vue打包后空白页解决内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue源码解析之数组变异的实现

    Vue源码解析之数组变异的实现

    这篇文章主要介绍了Vue源码解析之数组变异的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • vue3使用vue3-print-nb实现区域打印功能

    vue3使用vue3-print-nb实现区域打印功能

    这篇文章主要给大家介绍了关于vue3使用vue3-print-nb实现区域打印功能的相关资料,在日常操作中,相信很多人在Vue怎么用插件实现打印功能问题上存在疑惑,需要的朋友可以参考下
    2023-07-07
  • vue中如何使用math.js

    vue中如何使用math.js

    这篇文章主要介绍了vue中如何使用math.js问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Vue ECharts设置主题实现方法介绍

    Vue ECharts设置主题实现方法介绍

    这篇文章主要介绍了Vue ECharts设置主题,本文通过实例代码图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • 解决echart在vue中id重复问题

    解决echart在vue中id重复问题

    这篇文章主要介绍了解决echart在vue中id重复问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Vue中Mustache引擎插值语法使用详解

    Vue中Mustache引擎插值语法使用详解

    在Vue中通过Mustache模板引擎将data中的文本数据插入到HTML中,下面这篇文章主要给大家介绍了关于Vue中Mustache模板引擎插值语法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • vue时间线组件的使用方法

    vue时间线组件的使用方法

    这篇文章主要为大家详细介绍了vue时间线组件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 详解Vue前端生产环境发布配置实战篇

    详解Vue前端生产环境发布配置实战篇

    这篇文章主要介绍了详解Vue前端生产环境发布配置实战篇,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Vue浅析axios二次封装与节流及防抖的实现

    Vue浅析axios二次封装与节流及防抖的实现

    axios是基于promise的HTTP库,可以使用在浏览器和node.js中,它不是vue的第三方插件,vue-axios是axios集成到Vue.js的小包装器,可以像插件一样安装使用:Vue.use(VueAxios, axios),本文给大家介绍axios的二次封装和节流与防抖
    2022-08-08
  • Vue父组件调用子组件事件方法

    Vue父组件调用子组件事件方法

    下面小编就为大家分享一篇Vue父组件调用子组件事件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02

最新评论