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中将URL中的参数提取出来作为对象的实现代码
Aug 16 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
May 23 Javascript
jqplot通过ajax动态画折线图的方法及思路
Dec 08 Javascript
JS解析XML实例分析
Jan 30 Javascript
js实现类似jquery里animate动画效果的方法
Apr 10 Javascript
javascript中innerText和innerHTML属性用法实例分析
May 13 Javascript
深入理解JavaScript 参数按值传递
May 24 Javascript
jQuery复合事件结合toggle()方法的用法示例
Jun 10 jQuery
VUE中使用Vue-resource完成交互
Jul 21 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
Jul 19 Javascript
微信小程序 轮播图实现原理及优化详解
Sep 29 Javascript
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
详解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
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
php商品对比功能代码分享
2015/09/24 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
javascript URL编码和解码使用说明
2010/04/12 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
浅谈原生JS中的延迟脚本和异步脚本
2017/07/12 Javascript
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
Python正则表达式经典入门教程
2017/05/22 Python
python的变量与赋值详细分析
2017/11/08 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
python 搜索大文件的实例代码
2019/07/08 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
长辈证婚人证婚词
2014/01/09 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
新员工考核评语
2014/12/31 职场文书
副总经理岗位职责
2015/02/02 职场文书
与死神共舞观后感
2015/06/15 职场文书
张丽莉事迹观后感
2015/06/16 职场文书