解决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 相关文章推荐
轻轻松松学JS调试(不下载任何工具)
Apr 14 Javascript
jQuery UI 应用不同Theme的办法
Sep 12 Javascript
jquery实现ajax提交form表单的方法总结
Mar 03 Javascript
select多选 multiple的使用示例
Jun 16 Javascript
用JavaScript实现页面重定向功能的教程
Jun 04 Javascript
jQuery表格的维护和删除操作
Feb 03 Javascript
详解vue嵌套路由-params传递参数
May 23 Javascript
Three.js利用dat.GUI如何简化试验流程详解
Sep 26 Javascript
通过js示例讲解时间复杂度与空间复杂度
Aug 06 Javascript
使用webpack将ES6转化ES5的实现方法
Oct 13 Javascript
详解搭建一个vue-cli的移动端H5开发模板
Jan 17 Javascript
微信小程序实现canvas分享朋友圈海报
Jun 21 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
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
php 变量引用与变量销毁机制详细介绍
2016/12/05 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
JS实现灵巧的下拉导航效果代码
2015/08/25 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
2017/09/29 NodeJs
jQuery 改变P标签文本值方法
2018/02/24 jQuery
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
使用python统计文件行数示例分享
2014/02/21 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
详解px单位html5响应式方案
2018/03/08 HTML / CSS
网络工程师职业规划
2014/02/10 职场文书
火灾现场处置方案
2014/05/28 职场文书
高中生旷课检讨书
2014/10/08 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript
Django cookie和session的应用场景及如何使用
2021/04/29 Python
Pygame Event事件模块的详细示例
2021/11/17 Python
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers