将React项目部署到本地Nginx服务器上

过程很曲折,所以记录下来。

首先我的项目是一个React+Redux+React-Router的单页应用。

1. 配置package.json

首先配置项目中的package.json,这一步非常非常重要

加上字段

"homepage": "http://localhost:8000/dianping",

这里要重点说明一下这个字段是映射服务器的,所以这个路径非常重要

不要写根目录,如果你写成下面这样,那项目是会出现非常多问题的!

"homepage": ".", 
"homepage": "./", 
"homepage": "http://localhost:8000"

写第三种会导致项目404,找不到js和css等静态资源

写第一种和第二种会导致二级路由无法匹配,只能匹配一级路由

所以一定不要写错,写上域名和项目目录名,这里是本地操作,所以我把域名写成了http://localhost:8000

2. 配置Nginx

Nginx安装好了之后,打开conf/nginx.conf

配置我们的服务器

server {
    listen      8000;
    server_name localhost;

    location /dianping {
        root    "D:/nginx-1.16.0/web"; 
        index   index.html;
        try_files   $uri /dianping/index.html;
    }

    location /mock {
        root    "D:/nginx-1.16.0/web/dianping";
    }
}

注意点有好几个,首先把打包后的项目放在D:/nginx-1.16.0/web/dianping下(dianping是我的项目名)

root这里最好写绝对路径,写相对路径也可以,路径到web就可以,不要多写

try_files $uri /dianping/index.html 添加这一行的原因,是因为单页面应用,路由不能被服务器正常匹配,会显示404,因此服务器无法匹配的路由,均定向到dianping/index.html

这几行的原因是:我写的接口是这样的/mock/getDetail/.....,应该改写成/dianping/mock/getDetail....,但是接口比较多,改起来比较麻烦,就让Nginx帮忙做了这件事情

location /mock {
    root    "D:/nginx-1.16.0/web/dianping";
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值