Azure静态Web应用无法读取带NEXT_PUBLIC前缀的.env变量
确认Azure静态Web应用的环境变量配置规则
Next.js带NEXT_PUBLIC_前缀的变量,必须配置在应用设置的构建时变量中,不能使用运行时变量。因为Next.js是在构建阶段将公开变量注入客户端代码的,运行时配置的变量无法被客户端获取到。
操作路径:打开Azure门户→找到目标静态Web应用→进入「配置」→「应用设置」→点击「添加」,变量名填NEXT_PUBLIC_API_BASE_PATH,值填入对应内容,同时确保部署设置里的构建命令是标准的Next.js构建命令(比如npm run build)。验证构建过程的变量注入
部署时查看Azure的构建日志,搜索NEXT_PUBLIC_API_BASE_PATH,如果能找到对应的变量值,说明配置已生效;如果找不到,检查变量是否被正确添加到构建时设置中。
注意:Azure静态Web应用的构建环境不会自动读取本地.env文件,必须通过门户手动配置构建时变量。检查Next.js版本与Azure部署的兼容性
确保使用的Next.js版本与Azure静态Web应用的运行时兼容。部分较旧的Next.js版本在处理环境变量时存在差异,建议升级到稳定的最新版本(比如v13及以上),避免版本适配问题。避免构建缓存导致的变量未更新
如果之前部署过旧版本,Azure可能会复用构建缓存,导致新配置的变量未被注入。可以在应用设置中添加AZURE_STATIC_WEB_APPS_DISABLE_BUILD_CACHE=true,强制触发完整构建,确保新变量生效。
内容的提问来源于stack exchange,提问作者Sadamuhiz

