Nuxt: i18n.localePath 访问中间件
Nuxt: i18n.localePath access in middleware
我已经为 Nuxt 定义了一个命名空间中间件,如下所示:
export default function({ store, redirect, app }){
if (!store.state.isAuth) {
return redirect(app.i18n.localePath('/auth'))
}
}
如果用户未 通过身份验证,他们将被重定向到位于 /auth
的身份验证页面。但是,这是一个多语言站点,因此我需要生成与当前语言环境相对应的路径。通常我会使用 $i18n.localePath
或者在这种情况下,使用 Nuxt 的 context、app.i18n.localePath()
,但是我得到这个错误:
app.i18n.localePath is not a function
我不确定为什么,考虑到有上下文,并且 console.log(app.i18n)
向我展示了应用程序。i18n.localePath 是 一个函数:
...
localePath: [Function: bound ],
...
有什么建议吗?谢谢!
是的,由于某些原因,localePath 在中间件中不起作用。
您可能应该手动检测当前语言环境。
let locale = app.i18n.locale === app.i18n.defaultLocale ? '' : '/' + app.i18n.locale;
return redirect( locale + '/auth' );
改用app.localePath('/auth')
我已经为 Nuxt 定义了一个命名空间中间件,如下所示:
export default function({ store, redirect, app }){
if (!store.state.isAuth) {
return redirect(app.i18n.localePath('/auth'))
}
}
如果用户未 通过身份验证,他们将被重定向到位于 /auth
的身份验证页面。但是,这是一个多语言站点,因此我需要生成与当前语言环境相对应的路径。通常我会使用 $i18n.localePath
或者在这种情况下,使用 Nuxt 的 context、app.i18n.localePath()
,但是我得到这个错误:
app.i18n.localePath is not a function
我不确定为什么,考虑到有上下文,并且 console.log(app.i18n)
向我展示了应用程序。i18n.localePath 是 一个函数:
...
localePath: [Function: bound ],
...
有什么建议吗?谢谢!
是的,由于某些原因,localePath 在中间件中不起作用。 您可能应该手动检测当前语言环境。
let locale = app.i18n.locale === app.i18n.defaultLocale ? '' : '/' + app.i18n.locale;
return redirect( locale + '/auth' );
改用app.localePath('/auth')