Vue实现远程获取路由与页面刷新导致404错误的解决

SpringBoot+Vue整合部署教程及刷新页面404问题 最近笔者在部署一个SpringBoot(Maven)+Vue项目的时候遇到了如题的问题,浅浅记录一下。 阅读详情

一、背景

  先简单介绍一下现在项目情况:前后端分离,后端服务是Java写的,前端是Vue+ElementUI。

  最近的一个需求是:通过后端Api去获取前端路由表,原因是每个登录角色对应的前端路由表可能是不一样的(权限问题)

二、遇到的问题

   因为前端Vue+ElementUI项目是单页应用——即只有一个index.html页面,如果路由从远程获取的话,每次F5或点击刷新按钮刷新页面的时候,就会找不到对应的路径而报404错误  

三、解决方案

  1、通过api远程获取路由,然后在前端生成对应路由

/* 
  将 服务器获得的[路由json字符串]转换成可访问的[前端路由组件] 
  @remoteRouterMap 服务器获得的[路由json字符串]
*/
function transformJsonToRouter(remoteRouterMap) {
  const accessedRouters = remoteRouterMap.filter(route => {
    if (!route.component) {
      route.component = Layout
    }else {
      route.component = route.component.replace("@/views/","")
      route.component = _import(route.component)
    }
    if (route.children && route.children.length) {
      route.children = transformJsonToRouter(route.children)
    }
    return true
  })

  return accessedRouters
}

       2、将路由模式改成history模式(vue默认是hash模式)

export default new Router({
  mode: 'history', //后端支持可开
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRouterMap,
  linkActiveClass: 'is-active'
})

        3、在nginx中设置将404错误指向index文件

location / {
  try_files $uri $uri/ /index.html;
}

Vue路由刷新时出现404问题的解决方案 这样,当在浏览器中刷新页面时,服务器会返回index.html,并由Vue Router来处理相应的路由逻辑。具体做法是,在路由跳转时使用history.pushState来修改URL,使其对应到正确的路由路径。然而,当用户手动刷新页面或直接输入某个路由地址时,由于服务器并没有为该路由提供相应的资源,就会导致404错误。根据具体情况选择适合的解决方案,可以有效地解决路由刷新时的404问题,并提升用户体验。当我们将项目部署到服务器的子目录时,配置正确的基本路径可以避免路由刷新时出现404问题。 阅读详情

相关推荐

Windows下Git安装

【代码】Windows下Git安装。

邓邓子的博客 725

Vue项目服务器部署刷新页面404问题及解决

因为在vue项目开发的时候是访问自己的8080服务器,后端有进行处理,在刷新界面后找不到相对路径时,会重新渲染index.html界面,把路由的控制权交给前端,然后前端负责路由的匹配,在找到符合/jichu /123 这种格式的路由后,就会匹配成功。vue router mode 默认为hsas,这样的url中会带有#,如果改成mode:'history’就能去掉#号,也可以正常访问,但是再次刷新你页面就会出现404。因为网页上显示的是静态绝对路径,而实际上服务器上是没有改路径的,多以导致刷新汇报错误。

IChen.的博客 6838

eDP接口信号组成认识

eDP接口信号主要由Main Link、AUXCH与HPD三部分组成,如下图所示。 Main Link:表示主通道,用来传输各类型视频数据和音频数据; AUX CH:表示辅助通道,用于传输低带宽需求的数据,以及链路管理和设备控制信号; HPD:表示热插拔检测通道。 Main Link南1~4对数据线组成,每对数据线都是一对差分线。对于一款液晶屏而言,Main Link具体需几对数据线,这取决于屏幕的分辨率和彩色位数。 在该通道中传送的信号有视频像素信号、视频定时信号、视频格式信号、比特/像素及

精诚所至 2万+

vue项目刷新404处理方式

当使用history模式时,URL中不再带有#号,而是正常的URL路径。这种配置使得在刷新页面时,服务器能够正确地返回主应用文件,并且Vue路由能够根据URL路径加载和呈现相应的组件。配置服务器端: 当使用Vue进行单页应用开发时,需要在服务器端进行一些配置以确保在刷新页面时不返回404错误。具体来说,需要配置服务器端路由规则,以便在访问任何URL时都返回主Vue应用的入口文件(通常是index.html)。这样,在页面刷新时,服务器将始终返回主应用文件,并且Vue路由能够正确地加载并渲染相应的组件。

m0_71966801的博客 4708

电荷灵敏前置放大器噪声优化策略:从理论到实践

本文深入探讨了电荷灵敏前置放大器的噪声优化策略,从理论分析到实践应用。文章系统解析了并联电流噪声与串联电压噪声的来源,并引入噪声等效原理与“冷电容”模型作为统一分析工具。通过详解a、b、c三类噪声的频谱特性,为实战优化提供了清晰指导。核心策略包括选用高跨导、低漏电流FET,优化静态工作点,采用共源-共基结构,精心设计反馈网络,以及实施严格的PCB布局、屏蔽与接地,旨在全面提升微弱信号检测系统的信噪比。

weixin_29292431的博客 466

实测避坑:华为Atlas 300I DUO推理卡部署Qwen1.5,性能对比3090与完整配置流程

本文深度评测华为Atlas 300I DUO推理卡在部署Qwen1.5-14B大模型时的性能表现,并与RTX 3090进行对比。通过实测数据展示硬件参数、部署流程及性能优化建议,揭示国产AI加速卡在LLM推理中的独特优势与适用场景,为开发者提供完整的配置指南和避坑方案。

weixin_29083475的博客 790

404 单页应用 报错 路由_Vue实现远程获取路由与页面刷新导致404错误的解决

一、背景先简单介绍一下现在项目情况:前后端分离,后端服务是Java写的,前端是Vue+ElementUI。最近的一个需求是:通过后端Api去获取前端路由表,原因是每个登录角色对应的前端路由表可能是不一样的(权限问题)二、遇到的问题因为前端Vue+ElementUI项目是单页应用——即只有一个index.html页面,如果路由从远程获取的话,每次F5或点击刷新按钮刷新页面的时候,就会找不到对应的路径...

weixin_42370345的博客 351

手把手教你搭建硬件在回路(HIL)仿真系统:从Simulink建模到实时测试

本文详细介绍了如何从零开始搭建硬件在回路(HIL)仿真系统,涵盖Simulink建模、实时仿真、代码生成及调试等关键步骤。通过具体配置示例和优化技巧,帮助开发者解决复杂控制系统验证中的技术难题,提升半实物仿真的效率和可靠性。

weixin_30952535的博客 445

解决 nginx部署vue刷新、访问路由页面404

Bug 当使用nginx 部署vue项目的时候 当我们刷新页面的时候,或者访问路由配置页面的时候会直接404,这是因为通常我们做的vue项目属于单页面开发。所以只有index.html。解决这个bug也很简单。只需要将访问重定向到index.html这个页面。交由 index.html 去处理对应的路由跳转就好. 修改nginx配置 配置代码: server { listen 80; # 监听的端口 server_name xx.xx.xxx.xx; # 处理

qq_43059674的博客 2万+

白炽灯寿命工程解析:从钨丝蒸发到电压控制的可靠性设计

白炽灯作为一种经典的电光源,其工作原理基于电流通过钨丝产生热辐射发光。在高温下,钨丝会持续蒸发导致灯丝逐渐变细、电阻增大,这是影响其寿命的核心物理机制。从工程角度看,白炽灯的可靠性设计涉及材料科学、热力学和电路设计的交叉,技术价值在于通过理解其失效原理,可以在成本与性能间取得最佳平衡。在实际应用中,电压波动、开关浪涌电流和机械振动是主要寿命杀手,尤其在工业控制、仪器仪表和特定照明场景中,合理的设计能大幅提升系统稳定性。本文深入探讨了钨蒸发、热应力等关键因素,并结合浪涌抑制和降压设计等实战技巧,为工程师提供了

weixin_28684655的博客 568

MoveIt2项目想换掉KDL求解器?试试这个trac_ik插件(附源码编译避坑指南)

本文详细介绍了如何在MoveIt2项目中用trac_ik插件替代KDL求解器,提升机械臂运动学求解的效率和成功率。内容涵盖环境准备、源码编译避坑、项目集成及性能调优,特别适合需要高精度控制的协作机械臂应用场景。通过实测数据对比,trac_ik在求解时间和奇异点处理上显著优于传统KDL求解器。

weixin_30730053的博客 690

解决vue3,动态添加路由,刷新页面出现白屏或者404

在做毕设的时候,在权限路由得到时候,我问通过router**.**addRoute(item)的方式,在路由守卫动态添加路由刚开始没什么问题,页面的都能正常显示,网络请求也能发送,后来出现了刷新页面,跳转到404解决方法提取出404代码片段追加到处理好的权限列表的末尾我项目采用的vue-router是4.3.3版本。

weixin_65363325的博客 5803

GEE:变异系数法在遥感影像分析中的应用及权重计算

本文介绍了在Google Earth Engine(GEE)平台上基于变异系数法的多指标加权遥感影像分析方法。该方法通过计算每个指标的平均值和标准差,进而计算变异系数来评估指标的变化程度。利用变异系数,我们可以计算每个指标的权重,并将其应用于加权和指数的计算,从而提高遥感影像分析的准确性和可靠性。方法应用于计算Risk-Screening Environmental Indicators (RSEI),并以此为例。

养乐多的博客 2270

vue-element-admin vue设置动态路由 刷新页面后出现跳转404页面Bug 解决方法

在使用的过程中,加入权限模块后,刷新后权限控制的页面就默认跳转到404页面了,原因是权限控制的路由模块是动态添加进去的,而我的404监听路由是在默认路由里面的,优先级比动态路由要高,所以刷新后默认先被404接管了,改一下,把404监听路由注释掉需要手动在动态路由加载后,再把通配路由加上去,所以有了解决方法二。这个bug的具体情况是:设置了动态路由之后,不同的用户登录之后显示了不同的侧边栏,在侧边栏点击菜单,渲染对应路由页面没有任何问题,但是在。(这种情况只出现在动态路由上,静态路由刷新没问题)。

laosao_66的博客 5826

点云从入门到精通技术详解100篇-基于三维点云的机器人抓取位姿检测(续)

集到的深度信息会存在噪点,因此需要将生成的场景点云进行预处理,获得平滑、降采样处理场景点云,本文设计的预处理操作更能从冗杂的场景点云中提取清晰、平滑的目标点云,便于后续的抓取位姿采样,提高后续算法的处理效率。因此需要对场景点云进行适当的分割,仅保留目标物体的点云,整个过程可以通过。场较小时,空间中的点云密度会更加提高;觉子系统的效率,再保持全局点云几何形状不改变的前提下,通过对目标点云进行。体素降采样可以快速地减少点云数据并同时保持点云的形。个点,由于我们实施抓取的目标物体只占整个场景点云图的一部分,

getusushu的博客 771

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

vue 使用addRoutes动态添加路由 刷新页面跳转404路由的问题

在做vue项目时需要使用后端给的路由权限,处理路由动态添加到路由上,几经查找在 vue-Router中有个router.addRoutes 的方法。 官方使用方法及说明 点我 router.addRoutes 函数签名: router.addRoutes(routes: Array<RouteConfig>) 动态添加更多的路由规则。参数必须是一个符合 routes 选项要求的...

多毛大叔爱萝莉的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Vue/React单页面应用部署到nginx服务器时,错误解决以及刷新404

一般来说,SPA 通过前端路由来管理页面导航,而刷新页面时,Nginx 直接尝试加载当前 URL 的资源,却找不到对应的文件,从而导致 404 错误。将项目部署到var/www目录中,然后修改nginx里面的root路径地址为var/www中。这样,当用户在登录页面或其他页面刷新时,Nginx 会将请求重定向到。将 Nginx 配置修改为以下内容,以确保所有请求都可以重定向到。可能是没有将dist文件夹放置到var/www/目录中,因为。,让前端的路由逻辑来处理 URL。,即用户请求的资源。

1780

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Vue history模式刷新页面404问题

为什么会出现404 我们先来看一下我们给到后端的dist文件 可以看到dist下只有一个index.html文件及一些静态资源,这个是因为Vue是单页应用(SPA),只有一个index.html作为入口文件,其它的路由都是通过JS来进行跳转 接着我们再来分析一下后端nginx的配置 server{ //监听80端口 listen80; //定义你的站点名称 server_namewebsite.com; //根据请求URI设置配置 l...

qq_32421489的博客 1万+

一行代码解决Vue异步路由刷新后404的问题

背景 /home:项目首页,同步路由 /uc/profile:个人信息页,异步路由,登录后根据用户角色展示。 /login?redirect=%2Fuc%2Fprofile(%2F是/ 的url转义) :登录页,同步路由,在个人信息页退出登录会进入登录页并携带redirect=/uc/profile,再次登录成功后,直接进入个人信息页 项目:基于vue-element-admin,对权限菜单,异步路由,Mock文件都已经写好了。只需要根据需求修改就可以! 最开始项目没有配置重定向404..

Moon Star 8208

部署 vue 单页面刷新路由404问题解决

部署 单页面刷新路由404问题解决 在linux下搭建nginx测试网页的时候,正常打开可以访问,当刷新后页面出现404 not found的问题 说明: vue-router默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。 如果不想要很丑的 hash,我们可以用路由的history 模式,这种模式充分利用hi...

又是再见? 5144

vue/react项目刷新页面出现404的原因以及解决办法

vue/react项目刷新页面出现404的原因以及解决办法

博哥的二进制世界 8662

uniapp(vue)打包web项目页面刷新后报404解决方案

在使用uniapp进行跨平台开发时,不少开发者会遇到页面刷新后出现404错误的问题。本文将为大家详细解析这一问题的原因及解决方案,帮助大家顺利解决此类问题。

Jiaberrr的博客 3082

vue打包到springboot项目下出现,vue页面刷新页面404错误/Whitelabel Error Page、无法直接通过路径访问Whitelabel Error Page

vue打包到springboot项目下出现,vue页面刷新页面404错误/Whitelabel Error Page、无法直接通过路径访问Whitelabel Error Page 问题描述 将vue项目整合进后端项目,部署服务器后,正常使用没有问题,但是只要刷新当前页面就总是返回404错误,Whitelabel Error Page,This application has no explici...

ACodeBird 8070

vue-router addrouters 刷新导致页面空白或404 解决方案

vue-router动态路由加载会遇到一些问题,最严重的问题是刷新动态路由页面导致404,网上查了不少资料,都有点问题,解决了一下,附代码及解决思路。 1、使用动态路由时需要一个全局变量,用来控制什么时候加载这个动态路由,我用的是vuex全局状态集管理,用他有个好处就是,刷新时路由信息会丢失,vuex状态也会丢失,所以根据他的状态来判断比较好,设置一个初始值 , 默认false,等动态路由加载完...

lizhen_software的博客 6790

vue路由history模式刷新页面出现404问题

vue hash模式下,URL中存在'#',用'history'模式就能解决这个问题。但是history模式会出现刷新页面后,页面出现404。解决的办法是用nginx配置一下。 在nginx的配置文件中修改 方法一: server { listen 9010; server_name localhost; location /{ root F:/mxr/WebApp/mxr/unpackage/dist/build/h5/; index index.

qq_38188762的博客 2799
上一篇: 微信转账api(企业付款)
下一篇: 阿里云安全组规则授权对象设置为固定IP段访问
chenrui310
博客等级 码龄15年 165粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值