前端Nginx部署项目问题积累

代理配置Demo

在Server中配置
location /api/system {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
proxy_pass http://192.168.163:8080/system;
}

在这里插入图片描述

ctrl+c退出编辑模式后,:wq保存出现只读提示解决办法

在这里插入图片描述

出现这种错误时会退出不了vim,那么出现这种错误的原因有:
1、该错误为当前用户没有权限对文件修改。
2、该文件没有正确保存退出,正在打开状态,关闭后再保存。
3、若该文件所有都关闭,提示有的人没有关闭,则删除该文件的临时文件则可正常打开、修改、保存。
解决方式:
第一种方法:如果有root权限,可以输入 :wq!强行保存退出。
第二种方法:
(1)按
ESC

(2)输入 :set noreadonly
(3)输入 :wq就可保存退出

部署成功后可正常打开页面,但一刷新出现404

问题:
1、为什么刷新页面会(没有配置情况下且不在首页根目录刷新)
2、为什么点击跳转时候会(有时)
原因:路由history模式
1、假设现在在浏览器上的url为 172.1.2.3:7000/test ,此时刷新页面时候会去根据浏览器上的url去服务器(nginx)上面请求对应的静态资源,nginx根据location / 的匹配规则在dist文件夹里没有找到对应的静态文件"test",所以返回404,合理。
此时通过配置try_files来重定向返回index.html文件,也就是回去首页“ / ”,注意,此时你的页面已经刷新过了,此时react-router或者vue-router路由发挥作用,会根据当前的url地址来对应匹配上组件,所以此时url即对应组件,页面重新加载完成,完事。
2、第二个问题,为什么点击跳转时候会而有时候不会,要知道跳转有两种情况:一种页面刷新(属于第一个问题),一种页面不刷新。这取决于你代码的书写情况,请记住:
(1)push不会刷新页面,只会更改浏览器上的url路由变更,不管是react-router还是vue-router都是运用html的api实现,叫做pushState()
(2)通过 会刷新页面,它相当于a标签
解决办法:
配置中加上 try_files $uri $uri/ /index.html; 这句配置的意思是每次匹配url路径时候找不到对应静态资源时候调制跳转到index.html文件 , 如图所示:

在这里插入图片描述

相关命令:

nginx启动命令: /usr/local/nginx/sbin/nginx
修改nginx配置文件:vim /usr/local/nginx/conf/nginx.conf
编辑模式:shift + i 编辑后 : wq 保存并退出
编辑后重启:/usr/local/nginx/sbin/nginx -s reload

参考链接:https://www.jianshu.com/p/d9342c2cc02e

猜你喜欢

转载自blog.csdn.net/weixin_45680024/article/details/127217739
今日推荐