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 相关文章推荐
JQuery开发的数独游戏代码
Oct 29 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
Nov 19 Javascript
jQuery选择器源码解读(八):addCombinator函数
Mar 31 Javascript
javascript+canvas实现刮刮卡抽奖效果
Jul 29 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
Jun 05 Javascript
JavaScript简单获取页面图片原始尺寸的方法
Jun 21 Javascript
canvas时钟效果
Feb 16 Javascript
详解Vue-cli 创建的项目如何跨域请求
May 18 Javascript
Vue 项目部署到服务器的问题解决方法
Dec 05 Javascript
利用jquery和BootStrap实现动态滚动条效果
Dec 03 jQuery
Vue页面刷新记住页面状态的实现
Dec 27 Javascript
解决iView Table组件宽度只变大不变小的问题
Nov 13 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
合作指挥官:孟斯克
2020/03/16 星际争霸
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
smarty表格换行实例
2014/12/15 PHP
phplot生成图片类用法详解
2015/01/06 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
jquery遍历checkbox介绍
2014/02/21 Javascript
javascript快速排序算法详解
2014/09/17 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
python如何编写win程序
2020/06/08 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
外贸业务员工作职责
2014/01/06 职场文书
打造完美自荐信
2014/01/24 职场文书
高一政治教学反思
2014/01/28 职场文书
房屋产权证明书
2014/10/15 职场文书
大学入学感言
2015/08/01 职场文书
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS