运行时配置
警告:
- 此功能已被弃用。 我们建议改用环境变量,它也支持读取运行时值。
- 你可以使用
register
函数在服务端启动时运行代码。- 此功能不适用于自动静态优化 (Automatic Static Optimization)、输出文件追踪 (Output File Tracing) 或 React 服务端组件 (React Server Components)。
要为应用添加运行时配置,请打开 next.config.js
并添加 publicRuntimeConfig
和 serverRuntimeConfig
配置:
module.exports = {
serverRuntimeConfig: {
// 仅限服务端使用
mySecret: 'secret',
secondSecret: process.env.SECOND_SECRET, // 通过环境变量传递
},
publicRuntimeConfig: {
// 客户端和服务端均可访问
staticFolder: '/static',
},
}
所有仅限服务端的运行时配置都应放在 serverRuntimeConfig
下。
任何客户端和服务端代码均可访问的配置应放在 publicRuntimeConfig
下。
依赖
publicRuntimeConfig
的页面必须使用getInitialProps
或getServerSideProps
,或者你的应用必须包含带有getInitialProps
的自定义 App (Custom App) 以退出自动静态优化 (Automatic Static Optimization)。未进行服务端渲染的页面(或页面中的组件)将无法访问运行时配置。
要在应用中使用运行时配置,请通过 next/config
获取,如下所示:
import getConfig from 'next/config'
import Image from 'next/image'
// 仅包含 serverRuntimeConfig 和 publicRuntimeConfig
const { serverRuntimeConfig, publicRuntimeConfig } = getConfig()
// 仅限服务端访问
console.log(serverRuntimeConfig.mySecret)
// 服务端和客户端均可访问
console.log(publicRuntimeConfig.staticFolder)
function MyImage() {
return (
<div>
<Image
src={`${publicRuntimeConfig.staticFolder}/logo.png`}
alt="logo"
layout="fill"
/>
</div>
)
}
export default MyImage