近期Vercel部署next-i18next出现的Bug技术问询
更新2
这可能与Vercel NFT的PR #304有关,其中资源已被移除作为依赖项。
更新1
成功反向连接到serverless函数的shell,发现确实不存在public文件夹:

环境信息
"next": "12.2.5", // 同时测试过12.2.6-canary.7和12.1.6 "next-i18next": "12.0.0", // 同时测试过10.5.0 "react": "18.2.0", // 同时测试过17.0.2 "react-dom": "18.2.0" // 同时测试过17.0.2
部署方式
Vercel
Bug描述
背景
遇到了next-i18next相关Bug,导致catch-all路由的serverless崩溃。首次发现该Bug是在周一中欧时间14:00左右,推测可能与serverless运行时/文件结构的变更有关——之前可正常运行的旧部署在重新部署后失效。
其他用户也遇到相同问题,相关参考:
- Discord讨论线程
- next-i18next官方Bug报告
- StackOverflow相关问题
尝试的解决方法
升级了next和next-i18next的版本(与其他用户操作一致)。使用最新版本时,翻译仅在特定场景下生效。
创建了最小复现项目(仓库地址:everdropde/ed-i18n-bug),通过getStaticPaths预构建了两个页面:
- ed-i18n-bug.vercel.app/en/test/prebuild
- ed-i18n-bug.vercel.app/de/test/prebuild
直接打开这两个页面时,翻译功能失效;但先访问首页(index.js)后再点击链接进入,翻译功能正常。
注意: 刷新页面后翻译功能会再次失效。
项目配置说明
- 页面文件夹包含catch-all路由
- 页面设置为静态站点生成
- 已设置默认区域设置
- 启用增量静态再生
预期行为
翻译功能正常工作
复现链接
示例仓库:everdropde/ed-i18n-bug
示例Vercel部署:ed-i18n-bug.vercel.app/de
复现步骤
- 克隆仓库并部署到Vercel
- 点击页面上的任意链接
内容的提问来源于stack exchange,提问作者Fabian Bosler
相关产品推荐
相关产品推荐

