【问题标题】:Route Base Nuxt not working as I expectedRoute Base Nuxt 未按预期工作
【发布时间】:2022-11-11 09:49:26
【问题描述】:

我有一个关于路由器底座的问题 例如,我有一个 nuxt 项目,其页面如下:

    • 一个
      • index.vue
    • b
      • index.vue

我做了一个router base = '/a/',所以我运行项目的时候,URL会直接去base router,https://localhost:3000/a

它没有在页面 a 上显示 index.vue。我应该使用 URL https://localhost:3000/a/a 在页面 a 上显示 index.vue。

我的问题是,通常是这样吗?或者还有其他方法可以使用 URL https://localhost:3000/a 在页面 a 上直接打开 index.vue 吗?

【问题讨论】:

  • 基础,基本上就是您在https://mywebsite.com 和任何路径(如/our-team)之间所拥有的。因此,如果您的基数为'a',它的行为确实类似于https://mywebsite.com/a/our-team。你想在这里实现什么?那个/ 用别名转发到/a
  • 我现在了解基地。我想在这里实现的是我希望我的 nuxt 项目将 a/index.vue 作为 root 所以当我想以静态方式访问文件时,它将像这样 localhost:3000/a/sitemap.xml 打开
  • 我已经发布了答案,你试过了吗?
  • 是的,我试过了,但我找到了另一种使用路由器中间件的方法。谢谢你的回答
  • 如果您有初始渲染,它会起作用吗?中间件旨在与客户端导航一起使用。仔细检查它在初始渲染时是否适合 SEO。

标签: vue.js nuxt.js vue-router


【解决方案1】:

你可以安装和设置这个包:https://github.com/nuxt-community/router-extras-module


然后,您可以在/ 上拥有页面a 的内容,如下所示

/pages/a.vue

<router>
{
  alias: '/'
}
</router>

<template>
  <div>Content page A</div>
</template>

顺便说一句,在这种情况下不需要/pages/index.vue


或者您可以重定向并在/a 上查看页面a 的内容,其中包含以下内容

/pages/index.vue

<router>
{
  redirect: '/a'
}
</router>

/pages/a.vue

<template>
  <div>Content page A</div>
</template>

PS:由于这与路由器配置有关,请记住,可能必须重新启动服务器以考虑更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2022-01-24
    • 2015-05-11
    • 2020-05-15
    • 2014-10-31
    • 2018-02-12
    相关资源
    最近更新 更多