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

Cloudflare Pages部署NextJS静态站点,环境变量无法读取求助

问题分析与解决步骤

你的核心问题是:用next export生成的静态Next.js站点,环境变量是在构建阶段注入到静态文件中的,而非运行时读取,所以Cloudflare Pages的配置需要匹配这个逻辑,以下是具体排查和解决方法:

  • 确保变量命名正确:必须以NEXT_PUBLIC_开头,你设置的NEXT_PUBLIC_API_URL是符合要求的,检查是否有拼写错误(比如大小写、下划线遗漏)。
  • 配置Cloudflare Pages的构建阶段变量:在Cloudflare Pages的项目设置→「环境变量」→「构建变量」中添加NEXT_PUBLIC_API_URL,而非仅在预览/生产变量里设置。因为静态站点的环境变量是在build过程中被Next.js打包进静态文件的,只有构建阶段的变量才会被读取。
  • 确认构建命令正确:在Cloudflare Pages的项目设置→「构建和部署」中,构建命令必须是next build && next export,确保Next.js完成build(注入环境变量)后再导出静态文件。
  • 触发全新构建:修改环境变量或构建配置后,必须手动触发一次新的部署(不要用缓存的构建产物),因为旧的静态文件里没有新注入的环境变量。
  • 检查构建日志:部署时查看Cloudflare Pages的构建日志,搜索NEXT_PUBLIC_API_URL,确认变量是否在构建过程中被正确加载。如果日志中没有出现该变量,检查变量的作用域(是否应用到了当前部署的环境,比如生产/预览)。

另外,不要尝试使用非NEXT_PUBLIC_前缀的变量(比如API_URL),因为这类变量不会被暴露给客户端代码,静态站点无法读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:30:41