Vercel部署React项目时如何安全使用API密钥并解决数据获取失败问题
Vercel部署React项目时如何安全使用API密钥并解决数据获取失败问题
别担心,这个问题是React项目部署到Vercel时的常见场景,我来给你一步步梳理解决办法:
你本地能正常运行是因为.env文件里存着API密钥,而且你通过.gitignore避免了把敏感信息提交到GitHub——这个做法非常正确,一定要保持!但Vercel部署时只会拉取GitHub仓库里的内容,自然拿不到没提交的.env里的密钥,所以解决核心就是在Vercel的项目配置里手动添加这些环境变量,具体操作如下:
- 登录你的Vercel账号,找到对应的React项目,进入项目的**Settings(设置)**页面
- 在左侧菜单栏找到**Environment Variables(环境变量)**选项
- 点击Add Variable(添加变量),把你本地
.env里的每一组键值对都填进去:- 举个例子,如果你本地
.env里写的是REACT_APP_WEATHER_API_KEY=abc123,那在Vercel里就填Key为REACT_APP_WEATHER_API_KEY,Value为abc123 - 划重点:React项目的环境变量必须以
REACT_APP_开头,否则代码里无法读取到这个变量,这个细节千万别忘!
- 举个例子,如果你本地
- 填完所有变量后点击Save(保存),然后重新部署项目:到Deployments(部署)页面找到最新的部署记录,点击Redeploy(重新部署),记得选择Clear build cache and redeploy(清除构建缓存并重新部署),确保新的环境变量能生效
另外再给你几个小提醒:
- 永远不要把敏感的API密钥提交到GitHub,你之前的
.gitignore配置是正确的,继续保持 - 如果你的API是在前端直接调用的,要确认该API允许在浏览器环境使用,部分API会有域名白名单限制,这时你可能需要在Vercel项目设置里配置相关的CORS规则或者添加允许的域名
- 要是你用的是带后端路由的框架(比如Next.js),后端里用的环境变量不需要加
REACT_APP_前缀,但你的情况是纯React项目,还是要遵循React的环境变量命名规则
备注:内容来源于stack exchange,提问作者Aadil Khatri
相关产品推荐
相关产品推荐

