如何在 Nuxt 中使路由区分大小写

问题描述 投票:0回答:2

我使用 nuxt.js + vue.js。我需要创建路由器的区分大小写。我发现了以下属性:caseSensitive。我试图将它放入 nuxt.config 但它不起作用,可以通过大写链接进行转换。如果我直接更改文件 ~project/.nuxt/router.js,一切正常。帮我弄清楚。

  router: {
    extendRoutes (routes) {
      for (let key in routes) {
        routes[key]['caseSensitive'] = true
      }
    }
javascript vue.js vue-router nuxt.js
2个回答
4
投票

你的代码看起来不错。我已经测试过了,这是我的:

// nuxt.config.js
router: {
  extendRoutes(routes) {
    for (const key in routes) {
      routes[key].caseSensitive = true
    }
  }
}

更准确地说,nuxt 文档允许在

router.extendRoutes
中使用
nuxt.config.js
属性自定义路线。正如它所说,对于每条路线:

路由的模式应该遵循 vue-router 模式

所以你需要查看 vue-router 的文档,在那里你可以找到

caseSensitive
属性。

重要说明 1: 此选项适用于 Vue 2.6.0+,适用于 Nuxt 2.5.0。所以 Nuxt 版本必须至少 >= 2.5.0.

重要提示 2: 一定要调用正确的 url 并清空缓存。我遇到了同样的问题,因为当我在 Chrome 搜索输入浏览器中输入我的 url 时,chrome 自动将其更改为小写。事实上,它使用了我之前请求的历史记录,而不是我想要的请求。


0
投票

Nuxt 3
中,升级后
2
->
3
,你可以简单地命名你的页面
pages/UpperCase
,它将自动生成
/UpperCase
路由,以及
pages/lowercase
,它将生成
 /lowercase
自动路由。不需要更多的技巧:)

© www.soinside.com 2019 - 2024. All rights reserved.