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实现数字+字母验证码的简单实例
Feb 10 Javascript
node.js操作mongoDB数据库示例分享
Nov 26 Javascript
jquery 构造函数在表单提交过程中修改数据
May 25 Javascript
js实现鼠标点击文本框自动选中内容的方法
Aug 20 Javascript
jquery中val()方法是从最后一个选项往前读取的
Sep 06 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
Mar 04 Javascript
Vue的elementUI实现自定义主题方法
Feb 23 Javascript
Vue 组件封装 并使用 NPM 发布的教程
Sep 30 Javascript
KOA+egg.js集成kafka消息队列的示例
Nov 09 Javascript
详解Vue.js 响应接口
Jul 04 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
Nov 16 Javascript
一定要知道的 25 个 Vue 技巧
Nov 02 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
网站当前的在线人数
2006/10/09 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
php设计模式之单例模式使用示例
2014/01/20 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
javascript不可用的问题探究
2013/10/01 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
Vue header组件开发详解
2018/01/26 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
Python中优化NumPy包使用性能的教程
2015/04/23 Python
Python中super()函数简介及用法分享
2016/07/11 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
python虚拟环境迁移方法
2019/01/03 Python
Python实现12306火车票抢票系统
2019/07/04 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
STAUD官方网站:洛杉矶独有的闲适风格
2019/04/11 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
学年末自我鉴定
2014/01/21 职场文书
大学生个人求职口试自我评价
2014/02/16 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
新闻稿格式范文
2015/07/18 职场文书
Django给表单添加honeypot验证增加安全性
2021/05/06 Python