Vue下路由History模式打包后页面空白的解决方法


Posted in Javascript onJune 29, 2018

vue的路由在默认的hash模式下,默认打包一般不会有什么问题,不过hash模式由于url会带有一个#,不美观,而且在微信分享,授权登录等都会有一些坑.所以history模式也会有一些应用场景.新手往往会碰到history模式打包后页面一片空白的情况,而且没有资源加载错误的报错信息.

这个其实仔细研究下会发现,如果项目直接放的跟目录, 那么是没有问题的,如果是子目录,那么就会一片空白了.这个vue官方有解释,需要加一个base

// base: '/history',
// mode: 'history',

这个base即为项目路径.

以上两个都解决了,还是会发现,此时只有首页能访问,通过首页点进去其他路由也是可以的,但是如果在其他路由刷新就有错误了,这个懂history模式的也应该知道,history模式是h5 api的 history.pushState,相对于是浏览器模拟了一条历史,而真正服务器上没有这个路径资源,为什么hash模式不存在这个问题呢?hash模式是带#,这个服务器不会解析,相对于还是返回html而已,index.html会根据vue路由去解析,而history模式则会请求服务器上的此地址,服务器上没有相关路径就会报错了,vue-router的官方文档有介绍各种配置,比如ngnix的配置

location / {
 try_files $uri $uri/ /index.html;
}

上面这个对于直接项目的根目录是可以的,但是如果项目不是根目录还是会有问题,

location /history {
   root C:/web/static;
 index index.html index.htm;
 #error_page 404 /history/index.html;
 if (!-e $request_filename) {
  rewrite ^/(.*) /history/index.html last;
  break;
 }
}

上面这个是项目路径名为history,这样配置后就不会有vue打包后页面空白问题了,history路由也可以自由访问了,不过要记得上面说的,非根目录的项目需要加上base 的路径

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 图片随机不定向浮动的实现代码
Jul 02 Javascript
js使用eval解析json实例与注意事项分享
Jan 18 Javascript
Bootstrap选项卡动态切换效果
Nov 28 Javascript
ThinkJS中如何使用MongoDB的CURD操作
Dec 13 Javascript
jQuery在header中设置请求信息的方法
Mar 06 Javascript
Vue实现选择城市功能
May 27 Javascript
使用JavaScript开发跨平台的桌面应用详解
Jul 27 Javascript
vue使用vue-i18n实现国际化的实现代码
Apr 08 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
Aug 25 Javascript
JS实现计算小于非负数n的素数的数量算法示例
Feb 26 Javascript
说说Vuex的getters属性的具体用法
Apr 15 Javascript
vue路由对不同界面进行传参及跳转的总结
Apr 20 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
Jun 29 #Javascript
JavaScript实现仿Clock ISO时钟
Jun 29 #Javascript
vue ssr 指南详读
Jun 29 #Javascript
jQuery实现获取动态添加的标签对象示例
Jun 28 #jQuery
Vue实现textarea固定输入行数与添加下划线样式的思路详解
Jun 28 #Javascript
详解swipe使用及竖屏页面滚动方法
Jun 28 #Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
Jun 28 #Javascript
You might like
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
关于Python的一些学习总结
2018/05/25 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
Python 高效编程技巧分享
2020/09/10 Python
Python类成员继承重写的实现
2020/09/16 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
计算机专业自荐信
2013/10/14 职场文书
建党伟业观后感
2015/06/01 职场文书
法制工作总结2015
2015/07/23 职场文书
清明扫墓感想
2015/08/11 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
python字符串的一些常见实用操作
2022/04/06 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python