React配置EC2后端BaseUrl后仍请求localhost接口报错是什么原因?
可能的原因及排查方向
- 未重新构建生产包
修改app-route.js后没有重新执行npm run build(或对应项目的构建命令),部署到前端服务器的仍是修改配置前的旧打包产物,内置的还是旧的localhost地址。 - 请求逻辑未引用定义的接口常量
实际发起请求的代码没有引入你导出的Auth_Controller_Login变量,仍在使用相对路径(比如axios.post('/api/v1/auth/signin')),或者硬编码了localhost地址。 - 请求库全局配置优先级更高
你使用的请求库(如axios)设置了全局baseURL,比如axios.defaults.baseURL = 'http://localhost:4002',或者请求拦截器里有强制替换请求域名的逻辑,优先级高于你手动拼接的完整接口地址。 - 静态资源缓存未更新
前端服务器配置了静态资源强缓存,或者浏览器本地缓存了旧的js资源,实际拉取到的还是未修改配置的旧代码。 - 环境变量配置覆盖
如果你的项目接入了多环境配置(.env.development/.env.production),代码里优先读取了环境变量中的接口地址,而生产环境的环境变量仍配置为localhost,覆盖了你在app-route.js里写死的地址。
快速验证方法
- 本地执行生产构建命令后,在打包生成的
build(或dist)文件夹的js产物中搜索localhost:4002,如果能搜到说明配置确实没生效,优先排查构建、配置优先级问题; - 检查登录请求的业务代码,确认是否直接使用
Auth_Controller_Login作为请求地址,没有拼接相对路径。
内容的提问来源于stack exchange,提问作者Phone Min Khant
相关产品推荐
相关产品推荐

