Internationalization 部署Nextjs应用程序后vercel上的错误重定向太多

Internationalization 部署Nextjs应用程序后vercel上的错误重定向太多,internationalization,next.js,i18next,vercel,Internationalization,Next.js,I18next,Vercel,我将我的nextjs应用程序部署到了Vercel,结果非常成功 我可以看到该网站的预览,甚至可以看到日志说它运行良好 但我尝试通过默认的Vercel域访问该网站: 我得到了一个错误\u太多的重定向 我在本地没有此问题。 我试过: 禁用我使用的语言重定向(/en适用于英国人,和/适用于法国人) 禁用i18next的语言检测器 但这些解决方案都没有改变任何事情。 有什么想法吗 i18n.js文件 从“i18next”导入i18n; 从'react-i18next'导入{initReactI1

我将我的nextjs应用程序部署到了Vercel,结果非常成功

我可以看到该网站的预览,甚至可以看到日志说它运行良好

但我尝试通过默认的Vercel域访问该网站:

我得到了一个错误\u太多的重定向

我在本地没有此问题。

我试过:

  • 禁用我使用的语言重定向(/en适用于英国人,和/适用于法国人)
  • 禁用i18next的语言检测器
但这些解决方案都没有改变任何事情。 有什么想法吗

i18n.js文件

从“i18next”导入i18n;
从'react-i18next'导入{initReactI18next};
从“i18next localstorage Cache”导入缓存;
从“i18next browser LanguageDetector”导入LanguageDetector;
const fallbackLng=['fr'];
const availableLanguages=['fr','en'];
const en=require('./locales/en/common.json');
const fr=require('./locales/fr/common.json');
常量选项={
订单:['querystring','navigator'],
lookupQuerystring:“液化天然气”
}
常量缓存选项={
//打开或关闭
启用:对,
//存储语言的前缀
前缀:“i18next_res_”,
//到期日
到期时间:365*24*60*60*1000,
//语言版本
//版本:{}
}
i18n
.使用(缓存)
.使用(initReactI18next)
.使用(语言检测器)
.init({
缓存:缓存选项,
撤退:撤退,
是的,
检测:选项,
支持的语言:可用的语言,
非明确支持:是的,
资源:{
en:{翻译:en},
fr:{翻译:fr},
},
插值:{
逃避价值:错,
},
反应:{
等等:是的,
悬念:是的,
},
});

导出默认i18n服务器上发生的情况如下:

您输入并将其重定向到/en,HTTP状态代码为307(临时重定向)

使用301(永久重定向)和/en重定向到/

您可以通过打开浏览器开发工具并查看
网络
选项卡来重现这一点


可能是,您在服务器上激活了某种url重写,它将所有内容重定向到您的域根。

是否有可用于此的公共回购?这就是它对我的作用

尝试更改区域设置和默认区域设置的顺序(不确定这是否有帮助,但它为我更改了一些内容。如果是这种情况,则为Undocumented!) 因此,我在
区域设置
数组和
数组中首先放置默认区域设置(对我来说是nl)

如果有帮助,请告诉我

module.exports = {
  i18n: {
    localeDetection: false,
    // These are all the locales you want to support in
    // your application
    locales: ['nl', 'en'],
    // This is the default locale you want to be used when visiting
    // a non-locale prefixed path e.g. `/hello`
    defaultLocale: 'nl',
    // This is a list of locale domains and the default locale they
    // should handle (these are only required when setting up domain routing)
    domains: [
      {
        domain: 'example.be',
        defaultLocale: 'nl',
      },
      {
        domain: 'example.com',
        defaultLocale: 'en',
      },
    ],
  },
  trailingSlash: true,
};

我将所有getInitialProps更改为getServerSideProps

我意识到我在做一个回应重定向:


res.writeHead(301,{Location:“/”})
感谢您的回答,这很有帮助!我问过Vercel,但他们需要一周的时间来回答。。。你认为这是我可以在我的代码中改变的东西吗,或者可能通过使用自定义域来改变吗?谢谢你的回答,但它不会改变任何东西。我刚试过。正如我所说,我的代码在本地工作得非常好,当我在服务器上部署它时,我遇到了重定向问题。您的回答提到了一个解决方案,根据提供的信息,其他用户无法找到该解决方案。