nuxt + vue-i18改变了路由
时间: 2023-10-31 16:18:37 浏览: 100
是的,nuxt + vue-i18n 在多语言切换时会改变路由,这是它的核心机制所决定的。nuxt + vue-i18n 通过在路由路径中添加语言前缀来实现多语言切换的,例如:
```
// 中文版路由
/zh/home
// 英文版路由
/en/home
```
这样做的好处是可以让搜索引擎更好地识别不同语言的页面,从而提高网站的 SEO。
如果您不想在路由中添加语言前缀,也可以通过配置 nuxt.config.js 文件来实现。具体实现方法如下:
1. 设置 routeNameSplitter
在 nuxt.config.js 文件中,设置 routeNameSplitter 选项,例如:
```
export default {
...
router: {
...
routeNameSplitter: '/'
},
...
}
```
这样做的效果是让 nuxt 不在路由中添加语言前缀,而是使用 / 分隔符来分隔路由和语言信息。
2. 使用别名来设置带有语言信息的页面路径
在 pages 文件夹中,为每个页面创建一个带有语言信息的别名,例如:
```
// pages/home.vue
<template>
<div>
<h1>{{ $t('home.title') }}</h1>
</div>
</template>
<script>
export default {
...
}
// 为中文版路由创建别名
export const cn = { path: '/home', alias: '/zh/home' }
// 为英文版路由创建别名
export const en = { path: '/home', alias: '/en/home' }
</script>
```
这样做的效果是让 nuxt 在生成路由时,使用带有语言信息的别名来代替默认的路由路径。
以上是我为您提供的关于 nuxt + vue-i18n 改变了路由的解决方法。如果您有其他问题,可以随时向我提问。
阅读全文