加入权限模块后,刷新后权限控制的页面就默认跳转到404页面了。 2,原因分析 权限控制的路由模块是动态添加进去的,而我的404监听路由是在默认路由里面的,优先级比动态路由要高,所以刷新后默认先被404接管了,改一下,把404监听路由也放到动态路由的末尾就可以了,代码如下: // 把这个路由从constantRoutes转移到asyncRoutes...
vue-admin-template (vue-element-admin)是个非常好用的B端UI框架,谁用谁知道! 在使用的过程中,加入权限模块后,刷新后权限控制的页面就默认跳转到404页面了,搞了半天终于解决了,原因是权限控制的路由模块是动态添加进去的,而我的404监听路由是在默认路由里面的,优先级比动态路由要高,所以刷新后默认先被404接管了,...
经过一番查找,发现是因为 vuex 中 sotre 存储的内容会在刷新页面时丢失导致的。 虽然将 next({ ...to, replace: true }) 改为 next({ path: '/' }) 也能解决问题,但是体验不好,一刷新就跳转到首页,关于next参考 刷新页面时打印 to.path和from.path 都是 /,无法获取上一次路由 不过发现使用 window.lo...
最近,基于vue admin template做了个demo,在它基础上对某些菜单加了页面权限控制,但是现在刷新做了权限控制的页面后,就404了,没加权限控制的是正常的。经过一番查找,发现是因为 vuex 中 sotre 存储的内容会在刷新页面时丢失导致的。 虽然将 next({ ...to, replace: true }) 改为 next({ path: '/' }) ...
getters.roles); // 动态添加路由 router.$addRoutes(accessRoutess); // 404 页面重定向必须放在最后面!否则一刷新和输入地址 就出问题跳 404 页面! // 因为addRoutes动态添加路由还没完成,页面就从静态找了。 // 解决:当动态路由表添加进去路由以后,再将 404 路由也动态添加进去! router.options.routes.push...
//404路由不应该放在静态路由里面,应该放动态路由最后 next(to.path) //router.addRoutes后需要转发一下,目的是让路由拥有信息。(如果不加,在路由页面刷新后会跳到404页面) //加上这两行代码,动态添加路由。改变了404页面的位置 console.log("filterAsyncRoutes", filterAsyncRoutes); ...
优化动态添加路由功能 以前的动态路由功能并不完善,首先要将所有的路由都添加到路由表里,然后根据后台返回的菜单栏数据来生成菜单。 导致的问题就是,虽然有页面在菜单栏上不显示,但由于已经添加到路由表里了,所以可以在地址栏上手动输入在菜单栏上不存在(但在路由表存在)的页面,进而可以越权访问。
(当前用户没有权限时,组件上使用了该指令则会被隐藏) v-permissionBtn="['account_btn']" 这个值是跟后端定好的,在获取路由的时候就有了 eg: <el-button style="margin-bottom:12px" class="filter-item el-button--other" type="primary" @click="batchAudit('one')" v-permissionBtn="['account_...
2024-06-16 10:352回复 UP主觉得很赞 偷改了一个新网名会一直更新,具体时间看情况,有时间就更新~~ 2024-06-16 10:37回复 NO.002415 FK飞空 为什么动态路由的界面刷新后直接跳404 2024-07-19 17:07回复 A-时光深存少年梦我的也是 因为to的matched属性 不知道为啥啊 2024-07-19 19:08回复 偷...
{ routers: constantRouterMap, // 这是默认权限列表 比如404 500等路由 dynamicRouters: [] // 这是通过后台获取的权利列表 }, mutations: { SET_ROUTERS: (state, routers) => { state.dynamicRouters = routers state.routers = constantRouterMap.concat(routers) } }, actions: { GenerateRoutes({ ...