You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NextJS中仅用于API路由的NEXT_PUBLIC_变量是否会进入前端包?

关于Next.js NEXT_PUBLIC_前缀环境变量的疑问解答
  • 结论很明确:只要变量名带有NEXT_PUBLIC_前缀,不管你是否在前端代码里实际使用它,它都会被打包进前端资源包中,同时变量值会在构建阶段被替换。
  • 原因是Next.js对这类前缀变量的处理逻辑完全基于命名规则:只要检测到变量以NEXT_PUBLIC_开头,就会自动将其注入到客户端全局环境(比如process.env),并打包进前端静态文件里,和你实际在哪段代码里调用它无关。
  • 要是这个变量属于敏感信息(比如密钥、令牌),哪怕只在API路由这类后端逻辑里使用,也绝对不能加NEXT_PUBLIC_前缀——否则会直接暴露给所有访问网站的用户,带来严重安全风险。正确的做法是使用不带该前缀的变量,仅在后端代码(API路由、getServerSideProps等服务端执行逻辑)中读取,这样既不会被打包到前端,生产环境也能正常获取变量值。

内容的提问来源于stack exchange,提问作者seven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 16:23:09