解决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 相关文章推荐
JavaScript 全角转半角部分
Oct 28 Javascript
jQuery输入城市查看地图使用介绍
May 08 Javascript
js创建对象的区别示例介绍
Jul 24 Javascript
JS JSOP跨域请求实例详解
Jul 04 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
Aug 24 Javascript
JavaScript验证知识整理
Mar 24 Javascript
高性能的javascript之加载顺序与执行原理篇
Jan 14 Javascript
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
webpack4 升级迁移的实现
Sep 12 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
Sep 25 Javascript
vue页面加载时的进度条功能(实例代码)
Jan 13 Javascript
JS异步宏队列与微队列原理区别详解
Jul 02 Javascript
深入理解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 上传文件大小限制
2009/07/05 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
基于jquery的分页控件(C#)
2011/01/06 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
JS实现的贪吃蛇游戏完整实例
2019/01/18 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
python实现人脸识别代码
2017/11/08 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
用pycharm开发django项目示例代码
2018/10/24 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
python requests指定出口ip的例子
2019/07/25 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
幼儿园新年寄语
2014/04/03 职场文书
学习十八大的心得体会
2014/09/12 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
2019年作为一名实习生的述职报告
2019/09/29 职场文书
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
在Python 中将类对象序列化为JSON
2022/04/06 Python
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers