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 相关文章推荐
Javascript 继承实现例子
Aug 12 Javascript
修改file按钮的默认样式实现代码
Apr 23 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
Apr 26 Javascript
jQuery插件pagination实现分页特效
Apr 12 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
Vue中的v-cloak使用解读
Mar 27 Javascript
Bootstrap Multiselect 常用组件实现代码
Jul 09 Javascript
js实现本地时间同步功能
Aug 26 Javascript
vue + element-ui的分页问题实现
Dec 17 Javascript
JavaScript页面加载事件实例讲解
Sep 01 Javascript
React组件设计模式之组合组件应用实例分析
Apr 29 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
Jun 16 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
php Undefined index和Undefined variable的解决方法
2008/03/27 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
footer定位页面底部(代码分享)
2017/03/07 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
Python使用cx_Oracle调用Oracle存储过程的方法示例
2017/10/07 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
Django中Forms的使用代码解析
2018/02/10 Python
Python如何将装饰器定义为类
2020/07/30 Python
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
迎新晚会邀请函
2014/02/01 职场文书
春节联欢会主持词
2014/03/24 职场文书
法制报告会主持词
2014/04/02 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
抢劫罪辩护词
2015/05/21 职场文书
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏