vue 路由刷新不见

在使用Vue.js开发单页应用程序时,路由刷新可能会导致页面出现404错误或其他问题。这是由于刷新页面时浏览器向服务器发出了GET请求,而服务器并没有提供正确的路由信息。

为了解决这个问题,您可以使用HTML5的History API,该API允许您在不重新加载页面的情况下更改URL。在Vue.js中,您可以使用Vue Router来实现这个目标。Vue Router提供了一种使用History API来管理URL的方式,并支持路由切换和刷新页面。

具体实现方法如下:


文章来源地址https://www.toymoban.com/diary/vue/240.html

1、在Vue Router配置中添加mode选项,将其设置为'history'。这将启用History API并允许您使用pushState和replaceState方法来更改URL。

const router = new VueRouter({
  mode: 'history',
  routes: [...]
})


2、在服务器端设置fallback选项。这将确保服务器将所有请求重定向到Vue应用程序的入口点。例如,如果您的Vue应用程序位于/index.html,则应将fallback选项设置为true。

const express = require('express')
const history = require('connect-history-api-fallback')
const app = express()
app.use(history({
  index: '/index.html',
  verbose: true,
  rewrites: [
    { from: /\/api\/.*$/, to: '/api/index.html' }
  ]
}))
app.use(express.static(__dirname + '/public'))
app.listen(8080)


在上述示例中,connect-history-api-fallback中间件用于将所有请求重定向到/index.html,而不是404页面。如果请求的URL以/api/开头,则会将其重定向到/api/index.html。


通过这种方式,您可以确保在刷新页面时,服务器会返回正确的路由信息,而不会出现404错误。同时,使用History API和Vue Router还可以为您的Vue.js应用程序提供更好的用户体验。



到此这篇关于vue 路由刷新不见的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/diary/vue/240.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用
上一篇 2023年08月19日 16:46
下一篇 2023年08月19日 16:46

相关文章

  • vue路由跳转后,刷新指定页面。

            做项目遇到一个坑:A页面带参跳转到B页面,第二次跳转时的参数与第一次时的参数不同,但是后台查询时还是使用的第一次的参数。需要手动刷新之后,才会使用第二次参数。         鉴于时间原因直接使用刷新页面监听路由的方法。在准备跳转的A页面添加路

    2024年02月12日
    浏览(19)
  • vue 动态路由刷新失效及404页面处理

    在开发后台管理项目,我们会使用vue动态路由做权限管理,但是使用vue动态路由时会遇到一些坑,这里总结一下,并提供解决思路 问题:刷新页面时会把addRouter添加的动态路由刷新掉,因此浏览器找不到之前添加的路由,便会进入白屏页面或者404页面 处理方式:判断是否刷

    2024年02月12日
    浏览(17)
  • 【Vue】监控路由与路由参数, 刷新当前页面数据的几种方法

    目录 一、Vue监控路由 1、Vue中watch监控路由 2、Vue中watch监控路由的某一个参数 3、Vue中watch同时监控多个路由 二、刷新当前页面数据 1、location.reload 2、$router.go(0) 3、this.$router.resolve()与this.$router.resolve() a、this.$router.resolve() b、this.$router.push() 三、示例场景 四、往期相关优质推荐

    2024年02月08日
    浏览(23)
  • VUE路由跳转并刷新页面(框架层实现)

    前言         网上找了很多办法,都需要开发者在页面内单独实现,或者是刷新整个浏览器,感觉并不是特别舒服。因此,我考虑可以在框架层去实现路由跳转刷新。         思路如下:                 1、重定向至临时界面(用户无感知)                 2、打开临时

    2024年02月11日
    浏览(28)
  • vue3 动态添加路由刷新后页面丢失(白屏)问题

    动态添加路由操作一般是用vuex或者Pinia封装,在登录页面调用 如果出现刷新页面丢失有两种可能: 1:vuex或者Pinia没有做持久化处理 2:动态添加路由需要在main.ts里面也调用一次 不需要路由守卫即可实现 注意:必须要在页面挂载前还有路由配置完成前调用添加,不然还是丢

    2024年02月16日
    浏览(20)
  • Vue路由模式(history模式 刷新页面空白解决方案)

    vue路由的三种模式 Hash模式 、 History模式 、 abstract 模式 Vue3: Hash 模式是用 createWebHashHistory() 创建的: Vue2 它在内部传递的实际 URL 之前使用了一个哈希字符(#)。由于这部分 URL 从未被发送到服务器,所以它不需要在服务器层面上进行任何特殊处理。不过,它在 SEO 中确实有

    2024年02月12日
    浏览(22)
  • vue3 关于动态路由刷新出现空白页最优解

    原因:刷新页面的时候动态路由会刷新掉,然后动态路由会重新加载, 而匹配路由会在加载路由之前 ,所以会导致空白页 解决办法:递归再调用beforEach,或者直接跳回首页 在你加载路由的地方 递归调用:next({ …to, replace: true });(慎用,如果你的后台管理table是带标签会有

    2024年02月15日
    浏览(21)
  • 关于vue路由跳转后的页面不会刷新的解决办法

    做uni项目的时候遇到的情况:1,父组件页面刷新了之后 需要触底加载的子组件能触底加载,否则不能加载。2,子组件不能触底加载,只需要刷新之后就能触底加载。以上的刷新不包括下拉刷新。3. 可能因为包了一层tab页导致跳转进页面没有请求数据的问题。 我的解决办法是

    2024年02月11日
    浏览(25)
  • nginx 部署vue项目,路由模式为history时,页面刷新404问题

    nginx部署vue项目,文件放在html下的dist文件夹中 nginx.conf 文件中,server 里配置文件的位置、请求跨域等信息 在启动项目后因为配置的是root,首先是找不到html下面的sys-test文件夹,再经过配置修改为alias配置后,刷新又会报404错误,最终配置为如下,成功解决 因为打包部署后,

    2023年04月08日
    浏览(17)
  • vue3.2项目中使用history路由模式刷新后页面404

    开发过程中,路由可以正常访问,打包后也可以正常访问,但是一刷新页面就会出现404错误 方法一:修改为Hash路由模式 在router/index.ts文件中,将history路由模式修改为hash路由模式即可。 history路由模式: hash路由模式: 方法二、修改后台伪静态 Nginx: Apache: 可以参考下这篇文

    2024年02月11日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包