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

Nuxt i18n:原生Fetch请求URL被自动添加locale前缀问题求助

解决Fetch请求URL丢失域名的问题
  • 检查URL拼接逻辑
    别直接写带开头斜杠的相对路径,要确保请求URL带上完整域名。比如正确写法:

    const targetDomain = 'https://your-domain.com';
    const locale = 'zh-CN';
    fetch(`${targetDomain}/${locale}/__cache/`)
    

    要是省略域名,浏览器会基于当前页面的域名(或base标签设置的路径)解析,容易出现路径偏差。

  • 排查页面的base标签
    页面里的<base>标签会直接影响所有相对URL的解析规则。如果页面设置了<base href="/">,那所有带开头斜杠的相对路径都会从根路径开始,自然丢失域名。查看HTML源码确认是否有这个标签,不需要就删掉;需要保留的话,请求必须用完整绝对路径。

  • 测试是否有代码/插件拦截修改URL
    可能是你封装的fetch工具、页面里的第三方脚本,甚至浏览器插件在偷偷改请求URL。直接在控制台跑最纯净的fetch测试:

    fetch('https://your-domain.com/zh-CN/__cache/')
    

    如果这个请求能正常访问目标地址,说明是你的业务代码或第三方脚本在搞鬼,逐一排查相关逻辑就行。

  • 注意相对路径的写法细节
    如果当前页面域名和目标域名一致,想用相对路径的话,别加开头的斜杠:比如当前页面在domain/{locale}/下,直接写fetch('__cache/')就会解析成domain/{locale}/__cache/;加了斜杠写fetch('/__cache/')就会跳到根路径,要是再加上base标签的影响,就会出现你遇到的/{locale}/__cache/这种情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:44:54