Nuxt2配置router base后跨应用路由跳转异常,如何手动处理重定向?
解决Nuxt管理端应用跳转主应用路由的重定向问题
你遇到的问题是因为管理端Nuxt应用配置了router: { base: "/admin" },Nuxt的路由系统会自动给所有相对路径的导航加上这个base前缀,导致原本指向主应用/login的链接被拼接成/admin/login。可以通过以下几种方式解决:
使用原生HTML
<a>标签
放弃Nuxt的<nuxt-link>,直接用原生a标签指定绝对路径,这样不会带上/admin前缀:<a href="/login">跳转到主应用登录页</a>配置路由重定向规则
在管理端应用的nuxt.config.js中,通过extendRoutes添加重定向规则,把误跳转的/admin/login导向主应用的/login:export default { router: { base: "/admin", extendRoutes(routes, resolve) { // 处理直接访问/admin/login的情况 routes.push({ path: "/login", redirect: "/login" }); // 针对/admin/login做重定向 routes.push({ path: "/admin/login", redirect: "/login" }); } } }编程式导航时绕过Nuxt路由前缀
如果是用代码触发跳转,不要用Nuxt的$router.push(它会自动加base),直接用window.location.href跳转绝对路径:// 组件内跳转示例 window.location.href = "/login";同域名下直接写绝对路径即可,无需拼接完整域名。
内容的提问来源于stack exchange,提问作者Sartre
相关产品推荐
相关产品推荐

