首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复vue路由器直接链接?

如何修复vue路由器直接链接?
EN

Stack Overflow用户
提问于 2021-06-25 16:00:37
回答 1查看 1K关注 0票数 3

我有一个vuejs SPA托管在Azure上,当开始在主页上时,它在生产上工作得很好。但是,我不能直接访问链接,甚至不能刷新页面。他们直接带我去404错误页面。

我知道这与我的路由器有关,但我在搞砸了它之后却不知所措。它是一个快速的需要改变的东西,还是有更多的东西需要改变?下面是我的路由器索引。

我以为底层的“历史”模式会解决这个问题,但事实并非如此。

代码语言:javascript
复制
import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/about',
    name: 'About',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
  },
  {
    path: '/resources',
    name: 'Resources',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "resources" */ '../views/Resources.vue')
  },
  {
    path: '/FAQs',
    name: 'FAQs',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "faqs" */ '../views/FAQs.vue')
  },
  {
    path: '/training',
    name: 'Training',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "training" */ '../views/Training.vue')
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-25 20:08:20

这是Michal分享的相关部分:

但是,

出现了一个问题:因为我们的应用程序是一个单一的页面客户端应用程序,如果没有适当的服务器配置,如果用户在浏览器中直接访问http://oursite.com/user/id,就会得到404错误。这太丑了。

不要担心:要解决这个问题,您所需要做的就是添加一个简单的catch-所有回退路由到您的服务器。如果URL不匹配任何静态资产,它应该提供与应用程序所在的相同的index.html页面。又漂亮了!

来源:https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations

这就是说,Vue路由器将无法处理使用/training URI访问培训页面的用户,每次都需要从主页导航到那里。

您可能需要做这个用户所做的事情:https://stackoverflow.com/a/67168081/7176046

并在关闭],后为"routes"添加以下内容

代码语言:javascript
复制
"navigationFallback": {
  "rewrite": "/index.html",
  "exclude": ["/images/*.{png,jpg,gif}", "/css/*"]
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68133940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档