Nuxt3中ISR路由为何自动添加?url=查询参数?
问题原因及解决方案
原因
你的路由规则顺序设置反了。Nuxt 的 routeRules 是按从上到下的顺序匹配的,你把范围更广的全局预渲染规则 /** 放在了更具体的 /pages/** ISR 规则前面,导致 Vercel 处理 ISR 路由时,先触发了全局预渲染逻辑,和 ISR 机制产生冲突。刷新页面时,Vercel 的 ISR fallback 机制异常触发,自动添加了 ?url= 参数来传递原始路由路径。
解决办法
把更具体的路由规则挪到前面,让 /pages/** 的 ISR 规则优先被匹配,覆盖全局预渲染规则:
修改 nuxt.config.ts 中的 routeRules:
routeRules: { "/pages/**": { isr: 60 }, "/**": { prerender: true }, // 其他规则... }
调整顺序后,Vercel 会优先对 /pages/ 开头的路由应用 ISR 规则,全局预渲染仅作用于剩余路由,刷新页面时就不会再自动添加 ?url= 参数了。
内容的提问来源于stack exchange,提问作者Tib
相关产品推荐
相关产品推荐

