vue 项目中当访问路由不存在的时候默认访问404页

网络编程 2021-07-04 14:06www.168986.cn编程入门
这篇文章主要介绍了vue 项目中当访问路由不存在的时候默认访问404页面操作,具有很好的参考价值,希望对大家有所帮助。一起跟随长沙网络推广过来看看吧

前言

在Vue项目中,当访问的页面路由不存在或错误时,页面显示为一片空白。,通常我们需要对访问url不存在或者错误的情况下添加默认的404页面,即not found页面。

一般的处理方法是

在添加一个path: ,优先级从上到下查找路由,都没有的时候全部指向 404页面 ,代码如下

const baseRoute = [
 { path: '/login', name: 'login', ponent: Login },
 {path: '/', redirect: '/index', ponent: Layout, name: 'dashboard'},
 // 404page
 { path: '/404', name: 'page404', ponent: page404 },
 {
 path: '/',
 redirect: '/index',
 ponent: Layout,
 children: [
 {
 path: 'index',
 name: 'index',
 ponent: ModeIndex,
 meta: {
  title: '', // 设备建模
  icon: ''
 }
 },
 {
 path: 'project',
 name: 'project',
 ponent: Project,
 meta: {
  dynamic: true, // 动态面包屑标题
  title: ''
 }
 }
 ]
 }
 {
 path: '', // 页面不存在的情况下会跳到404页面
 redirect: '/404',
 name: 'notFound',
 hidden: true
 }
]
const router = new Router({
 routes: baseRoute
})

问题

这样做好处是简单,方便,因为我代码里面添加了如下代码,用于页面token失效跳出登录的时候记住当前路由,当下次再登录的时候直接跳到指定路由

if (to.path.slice(1) !== '') {
  router.push({
  path: '/login',
  query: {
  redirect: to.path.slice(1)
  }
  })
 } else {
 router.push({
  path: '/login'
 })
 }

就是因为加了所有找不到都指向404,导致了第一次不知道网址的人输错后,redirect就指向了404,这样用户第一次登录成功后页面就进入404,体验很差,产品和测试也一直以为是页面出bug了,为了解决这个问题,查找了相关资料,狼蚁网站SEO优化是优化后的方法。

优化后的设置方式 

1、route --> index.js

末尾去掉 --> 404

const baseRoute = [
 { path: '/login', name: 'login', ponent: Login },
 {path: '/', redirect: '/index', ponent: Layout, name: 'dashboard'},
  // 404page
 {path: '/404', ponent: page404, name: 'page404'}, 
 {
 path: '/',
 redirect: '/index',
 ponent: Layout,
 children: [
 {
 path: 'index',
 name: 'index',
 ponent: ModeIndex,
 meta: {
  title: '', // 设备建模
  icon: ''
 }
 },
 {
 path: 'project',
 name: 'project',
 ponent: Project,
 meta: {
  dynamic: true, // 动态面包屑标题
  title: ''
 }
 }
 ]
 },
 // {
 // path: '', // 页面不存在的情况下会跳到404页面
 //redirect: '/404',
 //name: 'notFound',
 //hidden: true
 / 

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by