当前位置: 首页 > news >正文

nginx部署时的路径配置问题

背景

一直觉得程序员敲代码就行了,结果前端一打包部署就给我打回原形了。每回部署都失败,然后我都形成惯性了,一到nginx部署我就摇人,我都不好意思了。
这一次的问题是原前端代码的基础路径为‘/’,现在要改成‘/abc’,即原来访问首页路径是‘http://localhost/index’,现在变成了‘http://localhost/abc/index’,我们这是一个vite项目,在代码的配置文件的前缀中已经修改好了这个前缀,并且已经打包好了(其实我觉得这个应该只用在nginx的配置文件中修改,而不应该在代码的配置文件中修改,否则改一次前缀就要在代码的配置文件中改一下,然后重新打包,然后又在nginx的配置文件中修改一下。但是好处也有一个,就是打包好的文件都在名为abc的文件夹目录下,直接把这个abc文件夹复制到nginx的html目录下即可。鉴于我低劣的前端水平,就先不质疑这个了)。现在就是要修改ngxin的配置以适应新的路径,但我立刻就改错了。

解决

    # 前端资源(实际是,避免出现刷新404,用/)location / {root   html;index  index.html index.htm;try_files  $uri $uri/ /abc/index.html /abc/lowcode/index.html;add_header 'Access-Control-Allow-Credentials' true;add_header 'Access-Control-Allow-Origin' * always;add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';}# 后端接口 location /abc/server {proxy_pass http://127.0.0.1:8081;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;# 清除前缀rewrite ^/abc/server(/.*)$ $1 break; add_header 'Access-Control-Allow-Credentials' true;add_header 'Access-Control-Allow-Origin' * always;add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';}

其实我主要是对nginx配置的各个字段不熟悉,上述这些字段我以前都看过,但是时间久了不看就不知道时干嘛的了。而且我对nginx这个技术也不是很熟悉,毕竟部署这个工作我也很少接触。

上述这段我当时首先就是在前端资源的location这里犯了错,我把这给改成了’/abc’,然后我在index和try_files的文件前都加了‘/abc’。其实location字段后面的这个路径是用来匹配的,大括号里的root指定了nginx的根目录,也就是我把打包后的dist目录里的东西复制到的地方,try_files是用来解决history路由不能跳转的问题,在vue-router官网有介绍 。try_files的路径和root目录是拼接在一起的,正好就对应了nginx的根目录下打包后的路径。

感受

感觉自己对这块还不是很熟,以后有时间还是要把这块好好学下。

参考

参考1
参考2

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • (备份) esp32 GPIO
  • Excel根据分数排名次,RANK函数来帮忙
  • 股指期货的指数一直贴水是什么意思?
  • 线下活动|落地武汉、长沙高校,10场AI沙龙火爆来袭
  • vue开发遇到的js逻辑判断问题
  • 从简单分析到智能问数,Smartbi AIChat让数据回归业务
  • Android13_SystemUI下拉框新增音量控制条
  • uniapp 发布苹果IOS详细流程,包括苹果开发者公司账号申请、IOS证书、.p12证书文件等
  • 【系统架构设计师-2024年真题】案例分析-答案及详解
  • 无人直播好帮手,视频指定词语消音,消除违禁词,直播视频录制,音视频分离,分段
  • 《Discriminative Class Tokens for Text-to-Image Diffusion Models》ICCV2023
  • 网络安全-dom破坏结合jq漏洞以及框架漏洞造成的xss-World War 3
  • FastAPI 中的错误处理:如何让错误信息更有价值
  • 上传文件到钉盘流程详解
  • SpringBoot整合WebSocket实现消息推送或聊天功能示例
  • 5、React组件事件详解
  • AHK 中 = 和 == 等比较运算符的用法
  • css的样式优先级
  • download使用浅析
  • echarts花样作死的坑
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • gcc介绍及安装
  • Idea+maven+scala构建包并在spark on yarn 运行
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Java 多线程编程之:notify 和 wait 用法
  • Joomla 2.x, 3.x useful code cheatsheet
  • Spring声明式事务管理之一:五大属性分析
  • yii2中session跨域名的问题
  • 安装python包到指定虚拟环境
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 基于Android乐音识别(2)
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 前端技术周刊 2019-02-11 Serverless
  • 数据仓库的几种建模方法
  • 我的zsh配置, 2019最新方案
  • 小程序测试方案初探
  • 字符串匹配基础上
  • Mac 上flink的安装与启动
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • # Panda3d 碰撞检测系统介绍
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (论文阅读30/100)Convolutional Pose Machines
  • (三分钟)速览传统边缘检测算子
  • (十五)使用Nexus创建Maven私服
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .net 7 上传文件踩坑
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET下ASPX编程的几个小问题