Next.js中/app目录迁移至/src/app的问题排查
src/app后翻译功能失效的排查步骤 以下是你可能遗漏的配置点及解决办法:
更新翻译资源的路径配置
如果你用的是next-intl、react-i18next这类翻译库,迁移到src/app后,资源文件的引入路径大概率需要调整。比如原本在项目根目录的locales文件夹,若你的翻译配置文件(比如i18n.ts)现在放在src目录下,那加载资源的路径就得从./locales/{{lng}}/{{ns}}.json改成../locales/{{lng}}/{{ns}}.json,确保能正确找到翻译文件。检查Middleware的位置与引用
注意:middleware.ts/middleware.js必须放在项目根目录,不能放到src里。如果之前误移了,赶紧移回根目录。同时要检查middleware里导入src中模块的路径是否正确,比如原本的import { getLocale } from './app/i18n/utils'要改成import { getLocale } from './src/app/i18n/utils'。修正TypeScript配置(若使用TS)
打开tsconfig.json,确认compilerOptions里的配置适配src结构:{ "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["./src/*"] } }, "include": ["src/**/*", "next-env.d.ts"] }这样能保证TS正确识别
src下的文件,避免导入路径报错。检查组件中的翻译钩子引用
遍历所有用到翻译功能的页面、组件,确保useTranslations、useI18n这类钩子的导入路径是正确的。比如可以用@/app/i18n这种别名路径(基于上面的TS配置),避免相对路径混乱。清理缓存并重新构建
删除.next文件夹,执行npm run build(或yarn build)后重启开发服务器,避免旧的路径缓存导致功能异常。
内容的提问来源于stack exchange,提问作者Baljka Gan

