react 部署
使用egg和react,前后端分离,并部署到服务器碰到的问题
react 部署到服务器遇到了几个问题
1.访问服务器报cors,跨域请求失败
这个问题呢,我的后端是使用egg来的,在后端我也是配置了egg-cors的,但是还是无法跨域,所以我就在网站上找资料,一直以为是egg这边跨域没做好,就找了好久,然后,无果。那我就从react如何跨域来解决,然后我找了资料,一个个试,最终找到了如下nigix配置,就可以访问到
#/api 代理名称
location /api/ {
# 下面的地址为你的后端地址
proxy_pass http://127.0.0.1:7001;
}
2.首先,打包之后 刷新 访问不到网站 报404
开始打包完后放到服务器上,打开网页刷新之后就无法找到路由了,我觉得是服务器无法找到相应文件夹,项目根路径后的 path 路径会被当作后台路由路径, 去请求对应的后台路由,但没有。 单页面应用就必须要每次都访问的是打包后的index.html,毕竟浏览器路径一变就会重新获取资源,这里我使用的是路由是history路由,网上解决办法是 改成 hash路由就可以解决,这是当然的,hash的路由改变后是没有刷新的,但是我这里并没有改路由方式,使用了后面一种方式,配置nigix来解决,配置的相关代码如下
server {
listen 80 # 你的前端端口
servername 127.0.0.1
index index.html index.htm default.php default.htm default.html;
# 这个下面是你的网站目录
root /www/wwwroot/127.0.0.1;
try_files $uri $uri/ /index.html;
}
3.然后,切换页面刷新,静态地址访问不到
在我解决上面问题后,跳转到子路由然后刷新时无法获取到相应的文件,发现获取的静态文件地址为127.0.0.1/layout/static/xxx.css,这是肯定获取不到的啊,然后我在把上面的配置文件改为
...
# 这个下面是你的网站目录文件 ,我是打包在pikachu这个文件下面
root /www/wwwroot/127.0.0.1/pikachu;
...
目前,了解到的nigix知识不是很多,遇到什么就学点什么了,如果有写错的,拜托大哥们纠正一下。 当然,如果有遇到类似的问题,我尽力帮助