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获取键盘按键响应事件(兼容各浏览器)
May 16 Javascript
一个判断抢购时间是否到达的简单的js函数
Jun 23 Javascript
Javascript 读取操作Sql中的Xml字段
Oct 09 Javascript
20个实用的JavaScript技巧分享
Nov 28 Javascript
js实现拉幕效果的广告代码
Sep 02 Javascript
分享12个实用的jQuery代码片段
Mar 09 Javascript
jQuery实现右键菜单、遮罩等效果代码
Sep 27 Javascript
ES6正则的扩展实例详解
Apr 25 Javascript
Vue单文件组件的如何使用方式介绍
Jul 28 Javascript
详解在Vue中有条件地使用CSS类
Sep 30 Javascript
javascript闭包的使用之按钮切换功能
Aug 30 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
Apr 02 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
一个简单的域名注册情况查询程序
2006/10/09 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
2014/06/12 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
理解javascript封装
2016/02/23 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
knockoutjs模板实现树形结构列表
2017/07/31 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
详解python并发获取snmp信息及性能测试
2017/03/27 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
对Python中list的倒序索引和切片实例讲解
2018/11/15 Python
最小二乘法及其python实现详解
2020/02/24 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
params有什么用
2016/03/01 面试题
装潢设计专业推荐信模板
2013/11/26 职场文书
先进党支部事迹材料
2014/01/13 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书