react项目中统一处理 baseURL , 利用脚手架的环境变量

本文介绍了如何在React项目中通过创建.env.development文件来设定生产环境变量,以统一处理baseURL。在utils文件夹下创建了url.js和api.js,用于管理和调用API。在需要发送axios请求或拼接图片URL的页面,可以引入这些配置,启动项目时需重新运行`npm start`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 根目录下(与src平级) 新建生产环境变量文件 .env.development
REACT_APP_URL = http://localhost:8080
  1. 在utils文件夹下 创建url.js 和 api.js文件
    url.js文件:
export const BASE_URL = process.env.REACT_APP_URL
    api.js文件:
import</
### 配置 Create-React-App 的 API 请求基础 URL 为了在 `create-react-app` 中配置 API 请求的基础 URL,在项目结构中的 `src/utils` 文件夹下创建个新的 TypeScript 文件 `request.ts`。此文件用于封装 Axios 实例以便统管理 HTTP 请求。 ```typescript import axios from 'axios'; // 创建 axios 实例并设定全局参数 const instance = axios.create({ baseURL: '/api', // 设置API的基础路径 timeout: 1000 * 60 * 10 // 定义请求的最大等待时间为十分钟 }); // 添加请求拦截器,可以在每次发起HTTP请求前处理些逻辑,比如添加认证令牌 instance.interceptors.request.use( config => { // 所有请求开始之前可以在此处执行额外的操作,例如设置 token 或者日志记录 return config; }, error => Promise.reject(error) ); // 添加响应拦截器来处理返回的数据或错误情况 instance.interceptors.response.use( response => response.data, error => Promise.reject(error) ); export default instance; // 导出自定义的Axios实例供其他模块调用[^1] ``` 对于跨域问题,可以通过配置代理解决。这涉及到在项目的根目录下的 `package.json` 文件内调整启动命令,并且在同级别建立名为 `.env` 的环境变量文件指定 `REACT_APP_API_PROXY=http://yourserver.com` 来间接影响 `setupProxy.js` 中的目标地址[^2]。 另外种方法是在 `src` 下新增加个叫做 `setupProxy.js` 的文件(注意不是其它名称),该文件用来配置 Webpack Dev Server 使用 http-proxy-middleware 库来进行反向代理: ```javascript const { createProxyMiddleware } = require('http-proxy-middleware'); module.exports = function(app) { app.use(createProxyMiddleware('/api',{ target: process.env.REACT_APP_API_PROXY || 'http://localhost:4000', changeOrigin: true, pathRewrite: {'^/api': ''} })); }; ``` 这样做的好处是可以让前端开发人员不必担心后端服务的实际位置,只需要按照 `/api` 开头的方式来构建所有的 RESTful 路径即可[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值