nginx代理vue项目路由跳转刷新

常规代理

在我们日常开发中,前端部署到服务器,需要用到nginx部署,简单代理如下:


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;server {listen       8088;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   "E:\develop\xxx\xxx\dist";index  index.html index.htm;}# 添加路由location /api {proxy_pass   http://192.168.1.66:8202/;proxy_redirect off;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}

然后启动nginx,在浏览器输入 localhost:8088回车即可;

代理vue路由

根据常规代理完成后,我们发现,在浏览器里直接输入  localhost:8088/home找不到页面,这样导致直接跳转vue路由失败!如果配置多个路由需要其他页面嵌套或者 打开多个窗口就会出现问题,这里我们需要配置nginx 的一个try_files 属性即可解决:

下面是全部配置


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;server {listen       8088;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   "E:\develop\xxx\xxx\dist";index  index.html index.htm;try_files $uri $uri/ /index.html; }# 添加路由location /api {proxy_pass   http://192.168.1.66:8202/;proxy_redirect off;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}

然后我们就可以在浏览器输入  localhost:8088/login和 localhost:8088/home直接打开对应vue配置的路由了

nginx代理vue路由,并配置前缀

如果我们项目很多,需要部署到门户上,或者使用的是乾坤,或一些特别的需求,这个时候客户需要我们加上前缀,如  localhost:8088/xxx/home  localhost:8088/xxx/login,这个时候我们需要改两处地方

第一步:修改vue路由,在vue的路由加上前缀

通过路由给的方法 createWebHistory 设置前缀,如果没有前缀 为空或“/”即可,这里我们个我们的路由加上 /Manage 前缀(我这里用的是vue3,如果是vue2 配置base属性)

第二步:我们设置nginx配置,nginx配置也要加上前缀,如下:

注意:我们也要在try_files 属性里加入 /Manage

完整配置


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;server {listen       8088;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location /Manage {root   "E:\develop\xxx\xxx\dist";index  index.html index.htm;try_files $uri $uri/ /Manage/index.html; }# 添加路由location /api {proxy_pass   http://192.168.1.66:8202/;proxy_redirect off;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}

第三步:我服务器上新建Manage文件夹,我们需要把我们的dist的内容包放到Manage文件夹下

配置完这些后 我们启动nginx,然后在浏览器输入 localhost:8088/Manage 或者 localhost:8088/Manage/home都可以打开项目了

 注意事项

1、每次重启nginx的时候要把上次的服务删除,不然有缓存,关闭nginx服务可以去任务管理器关闭, 任务管理器里两个服务, 先关闭下面的一个, 在关闭上面的一个

2、我们配置nginx时候,要注意书写格式,每行代码结束需要加 ";"  分号,不然启动nginx会报错,报错日志在logs的error.log看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/848163.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么把mov格式的视频转换mp4?四种方法教会你mov转MP4!

怎么把mov格式的视频转换mp4?在这个数字化时代,视频已经跻身为生活的核心元素,然而,制作和分享视频时选择合适的格式变得至关重要,在庞大的视频格式库中,我们熟知的包括mov和MP4,它们各有特色&a…

金融科技引领跨境支付新潮流:智慧、速度与安全的完美融合

一、引言 在全球经济日益紧密相连的今天,跨境支付作为连接各国贸易和金融活动的桥梁,正迎来金融科技带来的深刻变革。金融科技以其独特的智慧化、高效化和安全化特性,正逐步渗透到跨境支付的各个环节,为跨境支付领域带来前所未有的创新和发展。本文将探讨金融科技如何引领跨…

mysql高级刷题-01-求中位数

题目: 解题代码 select sum(num) / count(num) as median from (select num,row_number() over (order by num desc,id desc ) as desc_math,row_number() over (order by num ,id ) as asc_mathfrom number) as t1 where asc_math in (desc_math, desc…

前端实现输入内容计算密码强度

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、思路二、计算密码强度分数密码强度动画展示效果完善动画效果完整代码前言 平时我们在浏览各种网站和 APP 的时候,都接触过密码这个东西~ 密码设置的好不好,关乎到你的账号安全性,越复杂的密码越安全,所以密码强度…

微信公众号文章背景颜色改成白色

微信公众号文章背景颜色黑色,看不清字。 按F12 , 找到 rich_media_area_primary ,把 background 改成 white .rich_media_area_primary {background: white; }

2024年社会发展与管理创新科学国际学术会议(ICSDMIS 2024)

2024年社会发展与管理创新科学国际学术会议(ICSDMIS 2024) 2024 International Conference on Social Development and Management Innovation Science(ICSDMIS 2024) 会议简介: 2024年社会发展与管理创新科学国际学术…

C语言中 printf函数格式化输出

一. 简介 本文来简单学习一下,C语言中printf函数格式化输出时,因为我们的粗心没有 将数据类型与格式化参数对应,而导致的一些问题。 二. C语言中printf函数的格式化输出 在C语言中,printf函数是用于格式化输出的函数&#xff0…

Redis 异常三连环

本文针对一种特殊情况下的Reids连环异常,分别是下面三种异常: NullPointerException: Cannot read the array length because “arg” is nullJedisDataException: ERR Protocol error: invalid bulk lengthJedisConnectionException: Unexpected end o…

NAT端口映射,实现外网访问内网服务器

目录 前言一、搭建网络拓扑1.1 配置server和pc1.1.1 配置server01.1.2 配置server11.1.3 配置pc0 1.2 配置客户路由器1.2.1 配置路由器IP1.2.2 配置静态路由 1.3 配置ISP路由器 二、配置端口映射2.1 在客户路由器配置端口映射2.2 测试公网计算机访问私网服务器2.2.1 PC0向serve…

Base64前端图片乱码转换

title: Base64码乱转换 date: 2024-06-01 20:30:28 tags: vue3 后端图片前端显示乱码 现象 后端传来一个图片,前端能够接收,但是console.log()后发现图片变成了乱码,但是检查后台又发现能够正常的收到了这张图片。 处理方法 笔者有尝试将…

dotenv 配置踩坑-显示undefined

今天在学习dotenv,结果自己按照官方文档巧下来竟然还是不行,人麻了~ 这是我的目录结构 按照配置那么,我们只需要在config.default.js中写入如下代码就可以实现它将环境变量从文件加载到process.env中。 但是,但是这里犯了一个低级错误&#…

通用高电子迁移率晶体管(HEMT)的差分微变解算方案及分析型模型

来源:A Difference-Microvariation Solution and Analytical Model for Generic HEMTs(TED 22年) 摘要 这篇论文提出了一种AlGaN/GaN和AlGaAs/GaAs基高电子迁移率晶体管(HEMT)的分析型直流模型。该模型考虑了高栅偏压下势垒层中积累的电荷。…

什么?!这年代还有人用父子组件通信?

创作背景 因为本前端菜鸟写代码从没考虑过代码是否易于维护,所以一旦涉及组件通信,一律使用Pinia状态管理,至于父子组件通信啥的,学完Pinia之后就被我狠狠抛弃了,当时就在想:为什么不直接教Pinia&#xff…

YOLO-Worldv2两分钟快速部署

本次部署使用的框架基于ultralytics, 并且已经集成最新版本的YOLOv8框架: 一键环境配置 pip install ultralytics基础使用 训练 from ultralytics import YOLOWorld model YOLOWorld(yolov8x-worldv2.pt) results model.train(datacoco8.yaml, epo…

康谋技术 | 自动驾驶:揭秘高精度时间同步技术(一)

众所周知,在自动驾驶中,主要涵盖感知、规划、控制三个关键的技术层面。在感知层面,单一传感器采集外界信息,各有优劣,比如摄像头采集信息分辨率高,但是受外界条件影响较大,一般缺少深度信息&…

算法导论 总结索引 | 第三部分 第十四章:数据结构的扩张

1、通过存储 额外信息的方法来扩张一 种标准的数据结构,然后对这种数据结构,编写新的操作来支持所需的应用。因为添加的信息 必须要能被该数据结构上的常规操作更新和维护 2、通过扩张红黑树构造出的两种数据结构:14.1介绍 一种支持一般动态…

从迷茫到精通,小李的IPD培训‘逆袭’之路!——精益咨询

谈及IPD培训,这确实是一个让小李心生敬畏而又充满期待的词汇。作为刚刚踏上这段“奇幻”旅程的小白,小李深感其不仅是一场知识的狂欢,更是一次思维的洗礼和团队的熔炼。 IPD,全称集成产品开发,它代表着一种前沿的产品…

使用 Node.js 和 Azure Function App 自动更新 Elasticsearch 索引

作者:来自 Elastic Jessica Garson 维护最新数据至关重要,尤其是在处理频繁变化的动态数据集时。这篇博文将指导你使用 Node.js 加载数据,并通过定期更新确保数据保持最新。我们将利用 Azure Function Apps 的功能来自动执行这些更新&#xf…

云计算百科:类型、服务与业务优势一网打尽

了解云计算的权威指南是至关重要的,掌握云计算的类型、服务、用途以及它们如何为组织带来好处尤为重要。 假设某公司的员工正在办公室工作,突然间火警响起,原来IT部门的主服务器机房着火了,所有服务器都受到了影响。这一消息引发…

新一代企业共享服务中心,开启企业智慧管理决策新纪元

随着数字化浪潮加速来袭,企业面临着与以往全然不同的挑战与机遇。 业务与人员的增长致使服务请求与日俱增,业务类型愈加复杂,大量来自不同业务线的服务请求使内部服务压力增加。业务激增后只得依赖更多资源投入,势必掣肘服务效率。…