vue的build先上部署的 devServer不生效的场景记录

devtools/2024/10/18 5:46:09/

文章目录

    • Nginx 相关命令
    • VUE项目devServer.proxy(正向代理)匹配请求中的地址工作流程
      • 开发期间代理proxy的配置
      • 项目打包上线出现的问题描述

Nginx 相关命令

//运行命令
start nginx 启动nginx服务//运行命令
nginx -s stop 停止nginx服务//运行命令
nginx -s reload 重载配置//运行命令
taskkill /f /t /im nginx.exe

devServerproxy_16">VUE项目devServer.proxy(正向代理)匹配请求中的地址工作流程

在本地开发的过程中,为了本地调试方便,通常会在vue.config.js 中配置 devServer。在devServer中配置proxy属性。实现开发期间的轻松跨域请求
目的:可以将指向本地的请求http://localhost:8080/api/action ,代理到后端的开发服务器上http://localhost:8089/personal-management/action

正向代理:代理服务器代替客户端向服务器发起请求。隐藏客户端。
发起请求:代理服务器从客户端发出请求,向目标服务器发起请求。
响应数据:目标服务器响应请求,代理服务器接收请求,并转发给客户端。
注:魔法就是使用的这个原理。

开发期间代理proxy的配置

javascript">devServer: { host: 'localhost',//服务器地址port: 8080,webSocketServer: false,proxy: {//配置跨域'/api': {target: 'http://localhost:8089',changeOrigin: true,/** 是否允许跨域 */ws: false,//是否启用websockets,用不到可设为falsepathRewrite: {//对路径匹配到的字符串重写"^/api": "", //请求到 http://localhost:8080/api/user//代理到请求 http://localhost:8089/user },}}} 

当浏览器发起一个请求后, 前端拿配置项中的地址去匹配请求中的地址,如果请求的地址中包含配置中的地址,则匹配成功,匹配成功后,会将匹配到的地址及其后面的地址拼到target的后面,向后端服务器发起跨域请求。

项目打包上线出现的问题描述

最开始将devServer.proxy中的代理地址改成了服务器地址,然后就执行了npm run build打包dist文件,将其部署上线[使用的是Tomcat]。

  • 初始问题是:无法访问到我后端的验证码。

  • 寻找原因:因为在vue.config.js中配置的 devServer.proxy 只是在开发环境下将请求代理到后端服务器的本地服务,我们把项目打包成dist文件只把我们的组件等资源打包了,并不会将代理服务器给打包,所以项目中的请求路径不完整导致访问不到对应资源。我访问的依旧是localhost:8080

怎么解决呢????????

  • 资源要被访问,那必然还是需要有另一个代理来装载它。我们部署上线最常见的就是使用proxy_pass 代理跨域转发! 只需要修改配置文件即可,添加proxy_pass即可,xxx.xxx.xxxx.xxx表示你的服务器地址,8889是我后端的访问端口。
location ^~/api/ {proxy_pass http://xxx.xxx.xxx.xxx:8889/api/;} 

补:2024-4-25

 proxy_cookie_path   /     /api/;    # 解决 nginx 反向代理时 session 丢失 无效

proxy_cookie_path是一个Nginx指令,用于在代理请求时调整Cookie的路径。在你提供的配置中,proxy_cookie_path指令的作用是将请求中的Cookie的路径从根路径"/“修改为”/api"/路径,以便在反向代理时保持session有效。这对解决Nginx反向代理时session丢失的问题很有用。

underscores_in_headers是一个Nginx配置指令,控制Nginx是否允许HTTP请求头中包含下划线。默认情况下,该配置项为off,这意味着Nginx会拒绝这样的请求头,并返回400 Bad Request错误。将其设置为on则允许这样的请求头,但这可能会带来安全风险,因为不是所有服务器都能正确处理这些请求头。

underscores_in_headers on; (默认 underscores_in_headers 为off)

后面单独测试了一下这个,亲测可用

axios.defaults.timeout = 5000 // 请求超时↳
axios.defaults.baseURL = 'http://www.wangzhi.com/'

http://www.ppmy.cn/devtools/23424.html

相关文章

司库是什么?和资金管理有什么异同?

一、司库是什么? 司库,从广义上来说,是一个企业或机构的资金管理中心,负责集中管理和调度企业的资金、资产和负债。它不仅涉及到企业的现金流管理、风险管理、投资决策等方面,还涉及到企业与外部金融机构、供应商、客…

Hadoop-Hive-Spark-离线环境搭建

一、版本描述 apache-hive-2.3.9-bin.tar.gz hadoop-2.7.0.tar.gz spark-2.4.0-bin-hadoop2.7.tgz 下载链接: https://archive.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz https://archive.apache.org/dist/hadoop/common/hadoop-2.7.…

STM32使用PWM控制舵机

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 舵机简介 2. 硬件连接 3. 代码实现 3.1 PWM.c 3.2 PWM.h 3.3 Servo.c 3.4 Servo.h 3.5 main.c 3.6 完整工程文件 PWM和OC输出详解: STM32定时器的OC比较和PWM​​​​​​​ 1. …

如果把软路由的网段更换成169.254.0.0/16会咋样?

前言 这几天有小伙伴在折腾软路由系统,然后问题就来了。 他咨询的是:为啥电脑连接软路由之后,无法访问软路由的管理页? 嗯。。。确实不是什么大事。但不注意看,还以为软路由没有正常获取到ip。 熟悉网络的小伙伴们都…

汕头联想 ibm x3500 M5服务器上门维修记录

汕头联想服务器现场检修;汕尾IBM服务器故障维修;揭阳戴尔服务器维修;汕头ERP服务器维修;潮阳地区各种服务器故障维修;各类服务器主板齐全; 分享一例从东莞到汕头某染料厂维修ibm system x3500 M5服务器的真…

LLaMA Factory多卡微调的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

深入浅出MySQL-05-【OPTIMIZE TABLE】

文章目录 1.用途2.如何使用3.注意事项4.查看表的碎片化程度5.替代方案6.性能影响 OPTIMIZE TABLE 是 MySQL 中的一个命令,用于优化表的存储。当 MySQL 表的存储空间由于删除或更新操作而变得不连续时,OPTIMIZE TABLE 可以帮助重新组织表数据和索引&#…

基于Springboot的火车订票管理系统

基于SpringbootVue的火车订票管理系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 车次信息 火车资讯 后台登录 用户管理 车型信息管理 车次信息管理 购票…