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 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
May 18 Javascript
js使用removeChild方法动态删除div元素
Aug 01 Javascript
jQuery中innerHeight()方法用法实例
Jan 19 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
Jun 14 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
Dec 08 Javascript
jQuery实现字符串全部替换的方法【推荐】
Mar 09 Javascript
使用Node.js实现简易MVC框架的方法
Aug 07 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
Nov 01 Javascript
vue 挂载路由到头部导航的方法
Nov 13 Javascript
微信小程序实现预览图片功能
Oct 22 Javascript
微信小程序中的列表切换功能实例代码详解
Jun 09 Javascript
jquery实现拖拽小方块效果
Dec 10 jQuery
详解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 判断服务器操作系统的类型
2014/02/17 PHP
php打印一个边长为N的实心和空心菱型的方法
2015/03/02 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
JavaScript中的逻辑判断符&&、||与!介绍
2014/12/31 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
python正则表达式中的括号匹配问题
2014/12/14 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
python实现剪切功能
2019/01/23 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
Python绘制全球疫情变化地图的实例代码
2020/04/20 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
医药代表个人的求职信分享
2013/12/08 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
水果超市创业计划书
2014/01/27 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
欢迎词范文
2015/01/27 职场文书
Python基础之元类详解
2021/04/29 Python
Django操作cookie的实现
2021/05/26 Python