今天在工作中遇到Vue打包后白屏问題问题分为两级,写出来供大家参考:
一阶段:打包后完全白屏解决方法:
这样处理后,神奇的事情发生了底部导航栏出现了,但昰除此之外无任何内容
nav-tab的导航栏内容有显示,router-view的内容不见了下面进入二阶段。
二阶段:打包后router-view中引用的内容无法显示,解决方法:
先抛出解决方案后面再简单做一下解释:
去掉/注释掉router.js中标识位置的代码:
有这段代码不会100%导致router-view内容无法显示,但是如果要留着这段代码并确保router-view内容可显示,就必须在服务器端做相应的配置才行
原因是这段代码更改了vue-router的模式为history 模式,vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整嘚 URL于是当 URL 改变时,页面不会重新加载实现单页面应用。
使用hash模式浏览器url地址栏一般会出现#…这样冗长丑陋的地址,如果不想要很丑嘚 hash就可以用路由的 history 模式,当使用 history 模式时URL 就像正常的 url,例如
不过这种模式要玩好还需要后台配置支持。因为我们的应用是个单页客户端应用如果后台没有正确的配置,当用户在浏览器直接访问 404所以,如果使用history模式就必须在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面这个页面就是你 app 依赖的页面。