React前端项目打包后启动跨域问题

最近花了一点时间学习React框架,然后自己照着教程写了下前端页面。

再学完之后,需要对前端代码进行打包操作:执行 npm run build 。

打包项目需要花一点时间,等待两分钟。

在打包好之后会出现这样的提示:

The build folder is ready to be deployed.
You may serve it with a static server:

  serve -s build

提示我们可以 接着 执行 serve -s build 或者 serve build 来作为一个本地静态serve提供服务。然后就会出现如下:

   ┌────────────────────────────────────────────────────┐
   │                                                    │
   │   Serving!                                         │
   │                                                    │
   │   - Local:            http://localhost:53075       │
   │   - On Your Network:  http://192.168.x.xx:53075    │
   │                                                    │
   │   This port was picked because 5000 is in use.     │
   │                                                    │
   │   Copied local address to clipboard!               │
   │                                                    │
   └────────────────────────────────────────────────────┘

有了一个本地的地址和网络地址 端口port是一样的 (这里我的后端服务是挂在5000端口上

在完成上述操作之后,在浏览器地址栏中输入 ‘http://localhost:53075’ 然后登录会发现其实存在一个跨域问题,这也引出了本次内容的问题所在。

因为我的前后端是分别启用的,前端是在53075端口,但是我的后端服务是在5000端口,所以存在一个跨域的问题。那么要如何解决这个问题呢?

----------------------------------------------------------

这里,我们使用nginx来帮助我们解决跨域问题,非常简单!

第一步: 安装nginx 

brew install Nginx

第二步:输入 nginx 如果能看到以下的画面说明安装启动成功。

 

第三步: 核心关键一步我们需要修改nginx 的配置文件 nginx.conf 

/usr/local/etc/nginx/ 进入到nginx文件夹

vim nginx.conf 修改文件

修改前最好备份一份 好习惯!

location / {} 中添加了 一句 proxy_pass +前端地址

然后新增加一段 location ~/api/ {} 添加一句 proxy_pass + 发送给后端的api请求

这里我们可以看出,nginx起到了一个反向代理的作用。自身端口是8080,会根据不同 判断出是应该返回给前端的js代码还是 一个api请求给后台返回得到数据。相当于起到了一个中间媒介的作用,这样我们就不用担心前后端跨域问题了。

此时,输入http://localhost:8080/ 会跳转到登录界面,输入账号密码 api正常请求 成功登录号。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值