前端打包配置+nginx配置实现部署及部署地址带特定前缀的几种方式

前端打包后要部署到服务器,在浏览器中可以通过url访问到我们开发的系统,通过nginx代理在工作中是一种很常用的方式。

这里以本地为例,把本地电脑当作一个服务器,实现普通部署、带特定前缀等
前端使用vue-cli+vue作为例子
以下内容都只解决在不同情况下请求前端打包文件404问题,如果在index.html中有引入public下的静态资源,可以使用**<%= BASE_URL %>**来代替相对路径或绝对路径,<%= BASE_URL %>对应的就是vue.config.js中publicPath
在这里插入图片描述

1.hash路由+不带前缀的普通部署

效果如下:地址为ip:port/#/hashPath形式(因为用的是默认的端口80所以可以不写端口号)
在这里插入图片描述
这种是最简单的部署方式。部署时不使用任何前缀,且前端使用的hash路由模式,不用担心后面访问资源404问题。
配置:

  1. 前端vue.config.js配置中不配置publicPath或者设置publicPath:'/'。对应的如果使用webpack.config.js,不设置output.publicPath或者设置为’/'。
  2. 打包生成dist文件,放到任意自己期望的目录下面
  3. 配置nginx
    示例:
    在这里插入图片描述
    其中:
    location:nginx的块级指令,用来匹配url请求。这里我们打算把前端部署在不带前缀的地址上,故直接使用 / 。关于location更多的配置可以参考https://zhuanlan.zhihu.com/p/137042956?utm_id=0
    root:用于指定文件系统中某个目录作为请求的根目录(还有一个alias与其类似,后面解释)
    index: 用于指定网站初始页 默认值为index index.html后面可以跟多个值用 空格 隔开,更多配置和解释可以参考官网/其他

2. hash路由+特定前缀

效果如下:地址为ip:port/prefixPath/#/hashPath形式
在这里插入图片描述

配置方式1:

  1. 前端打包配置publicPath设置为 ./
    ./代表当前目录下,这样设置可以适配在不同环境下想要为系统设置不同前缀的问题,不论设置什么前缀都能正确匹配
    在这里插入图片描述

  2. 打包生成dist文件,放到任意自己期望的目录下面

  3. 配置nginx:示例:
    在这里插入图片描述
    alias:用于将请求映射到另一个目录或文件上(用于将请求的URL路径与文件系统路径进行映射)

alias和root的区别:

如果上面仍然使用root访问url时得到的结果将是404 Not Found
在这里插入图片描述
root: 指定文件系统中某个目录作为请求的根目录,Nginx会在该目录下寻找请求的文件,最后请求的路径为root指定的URL + location上的URL
alias:将请求映射到另一个目录或文件上,最后请求的路径为alias指定的URL,即loaction后面的路径将被忽略。

配置方式2:

如果部署的前缀固定,可以设置publicPath为固定路径

  1. 配置publicPath为固定地址(这个地址必须和nginx配置的location 后面的url路径保持一致
    在这里插入图片描述

  2. 同配置方式1

  3. 同配置方式1

3.history模式

history模式相对hash模式配置要更加复杂,稍微不注意可能就会出现404
publicPath的几种配置

1. ‘./’ 表示 与当前路径处于同一级

1.1 浏览器地址为localhost/tenant-mgt/ (注意是以/结尾的) 则跟tenant-mgt/同级,相当于是tenant-mat的下一级,因为tenant-mgt后面有一个/
在这里插入图片描述
这情况下请求的地址为:
在这里插入图片描述

1.1 那如果此时tenant-mgt/ 中/后面还有一个路径呢 如loacalhost/tenant-mgt/index 那么上面vue.min.js的请求地址是什么?
答案是和上面一样,即还是loacalhost/tenant-mgt/vendor/vue.min.js 因为和index同级就是相当于tenant-mgt的后面一级
1.2 那如果tenant-magt后面没有/呢,即localhost/tenant-mgt。这个时候./和/tenant-mgt同级即loaclhost/这一级
则请求的地址就变成了loacalhost/vendor/vue.min.js
所以最后是不是以 / 结尾很重要

  1. ‘/’表示绝对地址,无论部署的地址和浏览器中显示的地址是什么,请求静态文件的地址都是根路径

3.1history模式+不带固定前缀

1.前端打包配置publicPath为 ‘/’(重要,这里不能设置为相对地址,否则js等文件请求将会带上浏览器url上面的地址,导致请求404)
在这里插入图片描述

2.nginx配置为
在这里插入图片描述

location / {
	root   D:\frontend\console\dist(前端打包路径);
	index  index.html index.htm;
	try_files $uri $uri/ /index.html(必须,否则刷新时会404;
}

例:下图中/login是访问系统后跳转到的路由路径
在这里插入图片描述

3.1history模式+固定前缀

假设我们需要部署的地址的前缀是/test
1.设置路由的base值为/test
在这里插入图片描述

2.设置publicPath为 /
在这里插入图片描述

3.nginx配置

location / {
	root   D:\frontend\console\dist(前端打包路径);
	index  index.html index.htm;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电脑突然提示dll文件丢失,怎么选择正确的恢复方法?

电脑突然提示dll文件丢失&#xff1f;其实当你的电脑使用久了&#xff0c;出现这种dll文件丢失是非常的正常的&#xff0c;毕竟你总会有不恰当的操作吧&#xff1f;这些操作都是会导致dll文件丢失的。丢失了&#xff0c;我们直接进行相关的修复就好了&#xff0c;还是比较简单的…

Qt开发 | Qt控件 | QTabWidget基本用法 | QListWidget应用详解 | QScrollArea应用详解

文章目录 一、QTabWidget基本用法二、QListWidget应用详解1.列表模式1.1 基本操作1.2 添加自定义item1.3 如何添加右键菜单1.4 QListWidget如何删除item 2.图标模式 三、QScrollArea应用详解 一、QTabWidget基本用法 QTabWidget 是 Qt 框架中的一个类&#xff0c;它提供了一个选…

C++学习/复习18----迭代器/反向迭代器及在list/vector中的应用、list与vector模拟实现复习

迭代器是一个对象&#xff0c;可以循环访问 C 标准库容器中的元素&#xff0c;并提供对各个元素的访问。 C 标准库容器全都提供迭代器&#xff0c;以便算法可以采用标准方式访问其元素&#xff0c;而不必考虑用于存储元素的容器类型。 一、反向迭代器类 基于普通迭代器构建反…

【Chapter8】文件系统,计算机操作系统教程,第四版,左万利,王英

文章目录 [toc]一、文件与文件系统1.1 文件1.2 文件系统 二、文件的访问方式2.1 顺序访问2.2 随机访问 三、文件的组织3.1 文件的逻辑组织3.2 文件的物理组织3.2.1 顺序结构3.2.2 链接结构3.2.3 索引结构3.2.4 Hash 结构3.2.5 倒排结构 3.3 UNIX文件物理结构&#xff08;索引链…

HarmonyOS Next开发学习手册——进程模型线程模型

进程模型 系统的进程模型如下图所示&#xff1a; 应用中&#xff08;同一包名&#xff09;的所有PageAbility、ServiceAbility、DataAbility、FormAbility运行在同一个独立进程中&#xff0c;即图中绿色部分的“Main Process”。 WebView拥有独立的渲染进程&#xff0c;即图中…

智能工厂中滑环应用的集成式和分立式数据接口解决方案

第四次工业革命通过在生产过程中实现新场景来推动数字化制造向前发展。这些场景依赖于基本的设计原则&#xff0c;包括器件互联、信息透明、技术协助&#xff0c;以及分散决策。没有先进的无线通信技术&#xff0c;就无法在现代智能工厂中实现所有这些原则。它们支持在广泛的领…

JM日志文件解析

研究意义 JM代码是对H264协议支持最全面的,不但还有编码还包括解码,通过它生成的trace文件可以对码流做一个很好的解读,目前很多码流分析工具也是基于JM的trace文件进行分析,研究它可以更深刻的理解H264协议。 环境搭建 先用cmake.exe 生成VS的工程文件 ●用VS 2019编译…

Modbus TCP什么场景用?

什么是Modbus TCP Modbus TCP是一种基于TCP/IP网络的通信协议&#xff0c;它允许不同的设备通过以太网进行数据交换。Modbus协议最初是为串行通信设计的&#xff0c;但随着网络技术的发展&#xff0c;Modbus TCP应运而生&#xff0c;它继承了Modbus RTU和Modbus ASCII的许多优点…

【分布式文件系统HDFS】文件操作基本命令的使用

目录 一、按照下述要求写出相应的文件操作命令&#xff0c;执行并观察结果 1. 新建目录 1.1 在本地文件系统按要求创建如下的文件夹 1.2 在HDFS文件系统按要求创建如下的文件夹 2. 编辑文件test1.txt&#xff0c;放入本地文件夹 /opt/user/myfile 3. 使用moveFromLocal命令…

沙盒在数据防泄密领域意义

在信息化快速发展的今天&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;数据泄密事件频发&#xff0c;给企业的安全和发展带来了巨大威胁。SDC沙盒防泄密系统&#xff0c;作为一种创新的数据防泄密解决方案&#xff0c;正逐渐在数据防泄密领域发挥着越来越重要的…

客户端输入网址后发生的全过程解析(协议交互、缓存、渲染)

目录 1. 输入 URL 并按下回车键2. DNS 解析3. TCP 连接4. 发送 HTTP 请求5. 服务器处理请求6. 发送 HTTP 响应7. 浏览器接收响应8. 渲染网页9. 执行脚本10. 处理其他资源11. TLS/SSL 加密&#xff08;如果使用 HTTPS&#xff09;握手过程 12. 协议协商和优化 总结 1. 输入 URL …

低碳短视频:成都柏煜文化传媒有限公司

低碳短视频&#xff1a;绿色传播的新风尚 随着全球气候变化和环境问题日益严峻&#xff0c;低碳生活已经成为人们追求的新风尚。在这个背景下&#xff0c;低碳短视频应运而生&#xff0c;以其独特的方式传播绿色理念&#xff0c;推动低碳生活方式的普及。成都柏煜文化传媒有限…

如何使用sr2t将你的安全扫描报告转换为表格格式

关于sr2t sr2t是一款针对安全扫描报告的格式转换工具&#xff0c;全称为“Scanning reports to tabular”&#xff0c;该工具可以获取扫描工具的输出文件&#xff0c;并将文件数据转换为表格格式&#xff0c;例如CSV、XLSX或文本表格等&#xff0c;能够为广大研究人员提供一个…

boss直聘招聘数据可视化分析

boss直聘招聘数据可视化分析 一、数据预处理二、数据可视化三、完整代码一、数据预处理 在 上一篇博客中,笔者已经详细介绍了使用selenium爬取南昌市web前端工程师的招聘岗位数据,数据格式如下: 这里主要对薪水列进行处理,为方便处理,将日薪和周薪的数据删除,将带有13薪…

Excel 将某个序列随机重排 N 次

A 列是个随机序列&#xff0c;B2 格是参数&#xff0c;表示重排的次数。 AB1ItemsReplicates2A23B4C5D 要求将 A 列重拍 N 次 D1Result2C3D4B5A6D7A8B9C 使用 SPL XLL&#xff0c;输入公式&#xff1a; spl("?2.conj(?1.sort(rand()))",A2:A5,B2)"整数.()…

RK3568平台开发系列讲解(调试篇)分析内核调用的利器 ftrace

🚀返回专栏总目录 文章目录 一. 指定 ftrace 跟踪器二、设置要 trace 的函数三、ftrace 的开关四、查看 trace五、trace-cmd 的使用六、trace-cmd 的常用选项6.1、查看可以跟踪的事件6.2、跟踪特定进程的函数调用6.3、函数过滤6.4、限制跟踪深度6.5、追踪特定事件沉淀、分享、…

数字化采购管理革新:全过程数字化采购管理平台的架构与实施

摘要&#xff1a;在数字化转型的浪潮中&#xff0c;采购管理正逐步迈向全流程的数字化。本文将详细解析全过程数字化采购管理平台的技术架构和实施策略&#xff0c;探讨如何通过Spring Cloud、Spring Boot2、Mybatis等先进技术和服务框架&#xff0c;实现从供应商管理到采购招投…

关于linux的图形界面

关于linux的图形界面 1. 概述1.1 X1.2 DM&#xff08;显示管理器/登录管理器&#xff09;1.3 WM&#xff08;窗口管理器&#xff09;1.4 GUI Toolkits1.5 Desktop Environment1.6 基本架构 2. 安装桌面2.1 Centos安装桌面2.2 Ubuntu安装桌面&#xff08;未实践&#xff09; 3. …

OpenGL-ES 学习(6)---- 立方体绘制

目录 立方体绘制基本原理立方体的顶点坐标和绘制顺序立方体颜色和着色器实现效果和参考代码 立方体绘制基本原理 一个立方体是由8个顶点组成&#xff0c;共6个面&#xff0c;所以绘制立方体本质上就是绘制这6个面共12个三角形 顶点的坐标体系如下图所示&#xff0c;三维坐标…

调试代码Pair-wise-Similarity-module-master

第一步&#xff1a;运行.py文件生成json文件 问题一&#xff1a;json.decoder.JSONDecodeError: Invalid \escape: line 1 column 31616 (char 31615) 解决&#xff1a; for dataset in dataset_list:with open(datasetmap[dataset] ".csv", "r") as li…