You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Routify忽略指定URL路径 不拦截对应链接原生跳转

Routify指定路径绕过SPA路由、走服务端响应的实现方案

Routify无内置的URL路径级全局忽略拦截配置,可通过以下两种无侵入方案实现需求,无需调整Go(Buffalo)端的现有逻辑:

方案1:单链接标记原生跳转(适配少量路径场景)

  • Routify默认拦截同域所有<a>标签点击事件做SPA跳转,只要给目标链接添加data-native属性,即可跳过Routify拦截,触发浏览器原生跳转,直接请求服务端对应路径,和新标签页打开的访问效果完全一致。
  • 代码示例:
<a href="/auth/login" data-native>账号登录</a>
  • 该属性为Routify原生支持,无需额外配置,单个或少量路径需要放行时优先用这个方案。

方案2:全局拦截规则批量放行(适配多路径场景)

如果需要放行的服务端路径较多,不想逐个给链接加属性,可在Routify初始化时配置beforePush前置钩子,统一匹配路径规则做放行处理:

  • 找到Routify挂载入口文件(通常为src/main.js),添加如下配置:
import { Router } from '@roxi/routify'
import routes from '../.routify/routes'

const router = new Router({
  routes,
  beforePush: (targetUrl) => {
    // 在此处添加所有需要绕过SPA、交由服务端响应的路径
    const serverSidePaths = ['/auth/login', '/auth/register', '/api/']
    // 匹配到规则时终止Routify路由处理,触发原生跳转
    if (serverSidePaths.some(path => targetUrl.pathname.startsWith(path))) {
      window.location.href = targetUrl.href
      return false
    }
    return true
  }
})
  • 后续新增需要放行的路径,直接往serverSidePaths数组追加规则即可,无需修改页面内的链接代码。

注意:官方提供的ignore构建配置仅用于构建路由清单时排除本地项目文件,属于构建阶段逻辑,和运行时的链接跳转拦截无关,无法实现路径级的放行需求,无需在该配置上调试。
不建议采用XHR请求后手动重定向的实现方式,该方案会丢失浏览器原生跳转的默认行为(加载状态提示、历史记录栈正常写入等),上述两种方案均可实现直接访问/auth/login的原生跳转效果。


内容的提问来源于stack exchange,提问作者matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 21:03:38