解决vue router使用 history 模式刷新后404问题


Posted in Javascript onJuly 19, 2017

因为我们的应用是单页客户端应用,当使用 history 模式时,URL 就像正常的 url,可以直接访问http://www.xxx.com/user/id,但是因为vue-router设置的路径不是真实存在的路径,所以刷新就会返回404错误。

想要history模式正常访问,还需要后台配置支持。要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。

也就是在服务端修改404错误页面的配置路径,让其指向到index.html。

警告:

因为这么做以后,你的服务器就不再返回 404 错误页面,因为对于所有路径都会返回 index.html 文件。为了避免这种情况,你应该在 Vue 应用里面覆盖所有的路由情况,然后在给出一个 404 页面。

const router = new VueRouter({
 mode: 'history',
 routes: [
 { path: '*', component: NotFoundComponent }
 ]
})

如此便解决了页面刷新后404问题。

问题延伸:

但是后面又发现,在IE浏览器下刷新仍然还是404,在网上找了一下原因,是因为IE自作聪明,对错误页面的处理在ie来看页面大小<1024b 会被认为十分不友好,所以ie就将改页面给替换成自己的错误提示页面了,而我的index.html刚好只有一个DIV:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>vue-mdm</title>
</head>
<body>
<div id="app"></div>
</div>
</body>
</html>

解决办法就是充实一下页面,让大小超过1024即可。

总结

以上所述是小编给大家介绍的解决vue router使用 history 模式刷新后404问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery textarea的长度进行验证
May 06 Javascript
Javascript 类与静态类的实现
Apr 01 Javascript
jQuery之按钮组件的深入解析
Jun 19 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
Dec 13 Javascript
深入理解node exports和module.exports区别
Jun 01 Javascript
JS JSOP跨域请求实例详解
Jul 04 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
Sep 27 Javascript
记React connect的几种写法(小结)
Sep 18 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
Sep 20 jQuery
webpack4.x下babel的安装、配置及使用详解
Mar 07 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
Sep 21 Javascript
jQuery实现购物车全功能
Jan 11 jQuery
深入理解vue Render函数
Jul 19 #Javascript
Vue AST源码解析第一篇
Jul 19 #Javascript
Vue之Watcher源码解析(1)
Jul 19 #Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
Jul 19 #Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
Jul 19 #Javascript
vue中的非父子间的通讯问题简单的实例代码
Jul 19 #Javascript
Vue之Watcher源码解析(2)
Jul 19 #Javascript
You might like
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
php 文件缓存函数
2011/10/08 PHP
PHP的博客ping服务代码
2012/02/04 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
extjs form textfield的隐藏方法
2008/12/29 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
jquery数组之存放checkbox全选值示例代码
2013/12/20 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
python简单判断序列是否为空的方法
2015/06/30 Python
详解Python中的文件操作
2016/08/28 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
python入门教程 python入门神图一张
2018/03/05 Python
Python批量查询关键词微信指数实例方法
2019/06/27 Python
python:动态路由的Flask程序代码
2019/11/22 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
服务员岗位责任制
2014/02/11 职场文书
暑期社会实践感言
2014/02/25 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
成本会计岗位职责
2015/02/03 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python