Netlify部署时_redirects文件失效,HTTP API混合内容问题复现
混合内容问题的排查与解决思路
检查
_redirects文件的配置与位置- 确认文件放在React项目的
public目录下,Netlify才能正确识别 - 核对API域名拼写:报错里的
eampleApi.com和配置里的exampleapi.com存在拼写错误,这会导致代理规则不匹配,请求直接走原HTTP地址,是核心问题之一 - 确保规则格式正确:
/base/* http://exampleapi.com/:splat 200中的状态码200不能少,这是Netlify代理的必要标识
- 确认文件放在React项目的
修正请求端点的拼接逻辑
- 生产环境下无需拼接
process.env.REACT_APP_NETLIFY域名,直接使用相对路径/base/app/getById?${urlParams}即可,硬拼域名会跳过Netlify代理 - 检查环境变量
REACT_APP_NETLIFY的取值,确保生产环境下为空或当前站点域名,避免引入多余的路径前缀
- 生产环境下无需拼接
清除缓存并重新部署
- 在Netlify后台的部署页面,选择"Clear cache and deploy site",强制刷新构建产物与重定向规则
- 清除浏览器缓存,避免旧的请求逻辑残留影响测试
验证代理是否生效
- 查看Netlify部署日志,确认日志中出现"Processing redirect rules"相关内容,说明
_redirects已被加载 - 打开浏览器开发者工具的Network面板,检查请求地址是否为
https://rahvatantsuk.netlify.app/base/xxx,而非直接请求原HTTP API地址
- 查看Netlify部署日志,确认日志中出现"Processing redirect rules"相关内容,说明
终极方案:推动API升级HTTPS
- 混合内容问题的根源是API使用HTTP,最彻底的解决方式是让目标API支持HTTPS,从根本上消除风险
内容的提问来源于stack exchange,提问作者Gaspar Luik
相关产品推荐
相关产品推荐

