下一个 JS 清单文件位置
Next JS manifest files location
当前配置:k8s 上的 NextJS 在 Dockerfile 和入口点脚本中有多个 pods、运行 yarn build
。
从这些路径请求的下一个 JS 清单文件:
domain.com/_next/static/p3MARTW1_07ma-QzuXQel/_buildManifest.js
domain.com/_next/static/p3MARTW1_07ma-QzuXQel/_middlewareManifest.js
其中 p3MARTW1_07ma-QzuXQel
是 pod 中的一个文件夹,并且由于从入口点进行的第二次构建,每个 pod 都不同。显然,当 LB 命中不同的 pod 时,它没有找到。
我找不到有关这些文件的任何信息,也找不到我们如何使此文件夹名称在不同版本中相同。
清单文件(和其他静态文件)在其路径中使用生成的构建 ID。您可以在 next.config.js
文件中配置此构建 ID,使用相同构建的所有 pods 都将相同。
module.exports = {
generateBuildId: async () => {
// Return custom build ID, like the latest git commit hash
return 'my-build-id'
}
}
来自 Configuring the Build ID 文档:
Next.js uses a constant id generated at build time to identify which
version of your application is being served. This can cause problems
in multi-server deployments when next build
is ran on every server. In
order to keep a static build id between builds you can provide your
own build id.
Open next.config.js
and add the generateBuildId
function
当前配置:k8s 上的 NextJS 在 Dockerfile 和入口点脚本中有多个 pods、运行 yarn build
。
从这些路径请求的下一个 JS 清单文件:
domain.com/_next/static/p3MARTW1_07ma-QzuXQel/_buildManifest.js
domain.com/_next/static/p3MARTW1_07ma-QzuXQel/_middlewareManifest.js
其中 p3MARTW1_07ma-QzuXQel
是 pod 中的一个文件夹,并且由于从入口点进行的第二次构建,每个 pod 都不同。显然,当 LB 命中不同的 pod 时,它没有找到。
我找不到有关这些文件的任何信息,也找不到我们如何使此文件夹名称在不同版本中相同。
清单文件(和其他静态文件)在其路径中使用生成的构建 ID。您可以在 next.config.js
文件中配置此构建 ID,使用相同构建的所有 pods 都将相同。
module.exports = {
generateBuildId: async () => {
// Return custom build ID, like the latest git commit hash
return 'my-build-id'
}
}
来自 Configuring the Build ID 文档:
Next.js uses a constant id generated at build time to identify which version of your application is being served. This can cause problems in multi-server deployments when
next build
is ran on every server. In order to keep a static build id between builds you can provide your own build id.Open
next.config.js
and add thegenerateBuildId
function