gpt4 book ai didi

next.js - 无法在 Vercel 上使用 serverSideTranslations

转载 作者:行者123 更新时间:2023-12-05 00:52:40 24 4
gpt4 key购买 nike

在我的索引页面中,我正在使用 serverSideTranslations 函数。获取有关查找翻译文件的错误。此错误仅发生在 serverSideTranslations 使用的页面上。

我部署到 Vercel 和 Netlify。在他们两个我都有同样的错误。

_app.js 中我正在使用 appWithTranslation

依赖关系:

"dependencies": {
"@fortawesome/fontawesome-free": "^5.15.4",
"@netlify/plugin-nextjs": "^3.9.2",
"axios": "^0.21.1",
"bootstrap": "^4.6.0",
"dayjs": "^1.10.4",
"dotenv": "^8.2.0",
"fs-extra": "^10.0.0",
"is-mobile": "^3.0.0",
"next": "^11.1.2",
"next-i18next": "^8.9.0",
"next-seo": "^4.20.0",
"node-fetch": "^2.6.1",
"parse": "^3.1.0",
"react": "17.0.1",
"react-bootstrap": "^1.5.0",
"react-dom": "17.0.1",
"react-infinite-scroller": "^1.2.4",
"recoil": "^0.1.2",
"sass": "^1.43.2",
"ts-node": "^9.1.1"
}

next.config.js

const path = require('path');
const { PHASE_DEVELOPMENT_SERVER } = require('next/constants')
const i18NextConfig = require('./next-i18next.config');

const prodConfig = {
generateBuildId: () => 'build-id',
compress: true,
target: 'serverless',
i18n: i18NextConfig.i18n,
sassOptions: {
includePaths: [path.join(__dirname, 'styles')],
},
}
module.exports = (phase, { defaultConfig }) => {
if (phase === PHASE_DEVELOPMENT_SERVER) {
return {
...defaultConfig,
...prodConfig,
compress: false,
}
}

return prodConfig;
}

next-i18next.config.js

const path = require('path');

module.exports = {
i18n: {
defaultLocale: 'he',
locales: ['he'],
localePath: path.resolve('./locales'), // <<< i tried to put this line here
},
keySeparator: '>',
nsSeparator: '|',
reloadOnPrerender: false,
localePath: path.resolve('./locales'), // <<< and also here
};

来自 Vercel lambda 函数的错误消息

ng 请求:错误:ENOENT:没有这样的文件或目录,scandir '/var/task/public/locales/he'在 Object.readdirSync (fs.js:1043:3)在 getLocaleNamespaces (/var/task/node_modules/next-i18next/dist/commonjs/config/createConfig.js:175:23)在/var/task/node_modules/next-i18next/dist/commonjs/config/createConfig.js:181:20在 Array.map()在 getNamespaces (/var/task/node_modules/next-i18next/dist/commonjs/config/createConfig.js:180:44)在 createConfig (/var/task/node_modules/next-i18next/dist/commonjs/config/createConfig.js:221:29)在 _callee$ (/var/task/node_modules/next-i18next/dist/commonjs/serverSideTranslations.js:199:53)在 tryCatch (/var/task/node_modules/regenerator-runtime/runtime.js:63:40)在 Generator.invoke [as _invoke] (/var/task/node_modules/regenerator-runtime/runtime.js:294:22)在 Generator.next (/var/task/node_modules/regenerator-runtime/runtime.js:119:21) {错误号:-2,系统调用:'scandir',路径:'/var/task/public/locales/he'}

最佳答案

您应该修改项目中的 next-i18next.config.js 文件,并将 path.resolve 添加到语言环境路径。您可以在 this 中查看示例 repo 。确保您知道您的语言环境文件夹所在的位置,并编写正确的路径。这个问题的答案在 this 中找到。 github线程。

关于next.js - 无法在 Vercel 上使用 serverSideTranslations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69640471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com