如何去除vue项目中的#及其ie9兼容性

如何去除vue项目中的#及其ie9兼容性

一、如何去除vue项目中访问地址的#

vue2中在路由配置中添加mode(vue-cli创建的项目在src/router/index.js)

export default new Router({ mode: ’history’, routes: [ { path: ’/’, name: ’menu’, component: menu, children: [ { path: ’organization’, component: organization, children: [ { path: ’’, redirect: ’organizationSub’ }, { path: ’organizationSub’, component: organizationSub } ] }, { path: ’user’, component: user }, { path: ’role’, component: role } ] } ]})

二、vue路由原理

2.1 hash模式:vue-router默认的路由模式。

vue开发的单页面应用,html只有一个,切换时url的变化通过url的hash模式模拟完整的url。

2.2 history模式:vue2中配置 mode: ’history’。

利用history.pushState API完成url的跳转

HTML5 History 模式官网介绍:https://router.vuejs.org/zh-cn/essentials/history-mode.html

三、注意事项

不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404,这就不好看了。

所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。

vue-router官网中有介绍,也有后台配置样例:https://router.vuejs.org/zh-cn/essentials/history-mode.html

四、兼容性

经过测试,mode: ’history’在ie9下不生效,若vue项目需要兼容ie9,且后台对访问地址有严格校验,不建议使用此种模式。若是内容有错误或遗漏,欢迎大家批评指正~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:详解如何去除vue项目中的#——History模式

推荐阅读

    ai切换屏幕模式的简单操作

    ai切换屏幕模式的简单操作,操作,模式,屏幕,隐藏,全屏,显示,窗口, ??今天就讲解ai切换屏幕模式的简单操作,一起去看看ai切换屏幕模式的操作

    wps回忆模式使用过程讲解

    wps回忆模式使用过程讲解,模式,界面,分享,点击,选择,二维码,学习, ??wps这款软件是大家都熟悉的,但最近有网友表示自己还不熟悉wps回忆模式

    IE 全屏模式启动

    IE 全屏模式启动,全屏,启动,命令行参数,启动模式,窗口,模式,插件,IE 的命令行参数有几个很不错的功能,之前提到《使IE8以隐私保护模式启动

    CSS3支持IE6, 7, and 8的边框border属性

    CSS3支持IE6, 7, and 8的边框border属性,属性,支持,启用,脚本,边框,工具,复制,我们都知道,IE 6,7不支持新增加的CSS3属性,甚至与IE8是CSS3还

    让IE6支持HTML5元素的方法

    让IE6支持HTML5元素的方法,方法,元素,支持,文件,网站,脚本,前提,作者已经把这段代码放到了Google code project上,只需要在你的head中调用

    ie-css3.htc 让IE6, 7, and 8也支持box-shadow

    ie-css3.htc 让IE6, 7, and 8也支持box-shadow,支持,文件,下载,复制,下载地址,前往,官网,首先下载ie-css3.htc脚本,然后在css中加入: 它的使