芋道前端项目部署后刷新 404 的解决办法(Nginx 配置教程)

很多同学在把 芋道前端项目 部署到服务器后,会遇到一个奇怪的问题:
👉 项目首页能正常访问,但一旦在浏览器里手动刷新某个页面,就会报 404 Not Found 错误。

这到底是为什么呢?又该怎么解决呢?下面我给大家讲清楚。


🔹 为什么会出现刷新 404?

这是因为 前端项目是单页面应用(SPA),所有的路由都是在前端(浏览器)里处理的。

  • 当你第一次访问 https://xxx.lyz8jj0.cn 时,Nginx 正确返回了 index.html
  • 但是当你刷新 https://xxx.lyz8jj0.cn/user/profile 这个页面时,Nginx 会去服务器上找一个真实的 /user/profile 目录或文件。
  • 结果当然找不到,就返回了 404。

所以问题的本质就是:Nginx 不知道前端路由该交给 index.html 来处理


🔹 解决办法

我们需要在 Nginx 配置里加一个规则:

  • 当请求的文件不存在时,让它始终回退到 index.html,由前端路由自己处理。

具体配置如下:

location / {  ## 芋道前端项目root   /www/wwwroot/xxx.lyz8jj0.cn/dist;index  index.html index.htm;try_files $uri $uri/ /index.html;
}

解释一下:

  • root:前端打包后的目录路径。
  • index:默认首页文件。
  • try_files:Nginx 会先尝试访问真实文件,如果找不到,就回退到 /index.html

这样一来,刷新页面时 Nginx 就会始终返回 index.html,交给前端路由去渲染。


🔹 流程图直观理解

下面是一张简单流程图,展示请求是如何处理的:

flowchart TDA[用户访问 / 或 /user/profile] --> B{Nginx 检查文件是否存在}B -- 存在 --> C[返回对应的静态文件]B -- 不存在 --> D[回退到 index.html]D --> E[前端路由处理路径,渲染对应页面]

👉 图中可以看到,当刷新 /user/profile 这样的路由时,Nginx 找不到对应文件,就会回退到 index.html,交给前端路由继续处理。


🔹 配置步骤

  1. 使用宝塔或 SSH 登录服务器

  2. 打开 Nginx 配置文件(通常在 /etc/nginx/conf.d/ 或者宝塔面板里)

  3. 找到你项目的 server {} 配置块

  4. 在里面加上上面的 location / {...} 配置

  5. 保存并重启 Nginx:

    nginx -s reload
    

🔹 总结

如果你在部署 芋道前端项目 后遇到刷新 404 问题,不要慌,只要在 Nginx 里加上:

try_files $uri $uri/ /index.html;

就能完美解决!

这个方法不仅适用于芋道前端项目,几乎所有的 Vue、React、Angular 单页面应用部署后刷新报错,都可以这样修复。

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

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

相关文章

更适合后端宝宝的前端三件套之HTML

文章目录📕1. HTML基础✏️1.1 什么是HTML✏️1.2 认识HTML标签✏️1.3 HTML文件基本结构✏️1.4 标签层次结构📕2. HTML常见标签✏️2.1 标题标签✏️2.2 段落标签✏️2.3 换行标签✏️2.4 图片标签✏️2.5 超链接标签✏️2.6 表格标签📕3. …

【JVM内存结构系列】四、不同垃圾回收器与堆内存的适配关系:从分代GC到Region GC

在JVM内存体系中,堆内存的“分代结构”与“对象流转规则”是通用基础,但垃圾回收器(GC)是决定堆内存实际表现的核心变量——不同GC为实现“低延迟”“高吞吐量”等目标,会对堆的划分方式、对象管理逻辑、参数配置规则进…

Zemax光学设计输出3D

输出立体数据文件(IGES/STEP/SAT/STL 格式)的参数设置界面,各参数含义如下:1. 起始面/终止面:设定要输出立体数据对应的光学表面范围,从第 0 个表面到第 9 个表面 ,限定参与输出的光学结构表面区…

模块测试与低功耗模式全攻略

一、模块测试流程在测试一个模块时,建议遵循以下步骤:基本测试:测试该模块的寄存器读写功能是否正常。可以向每个寄存器写入 0x5A5A 和 0xA5A5,这两种模式可以覆盖对寄存器写入 0 和 1 的情况。进阶测试:在基本测试通过…

机器学习实验三、使用决策树算法预测泰坦尼克号幸存者

实验目的1. 掌握特征工程,会进行特征提取与特征选择,会进行缺失值填充。2. 建立决策树模型,解决实际问题。3. 会对模型进行调试,能够绘制并保存决策树。实验环境Python 3.7.0,Sklearn ,PyCharm实验原理1、特…

从全栈开发到微服务架构:一次真实的Java面试实录

从全栈开发到微服务架构:一次真实的Java面试实录 面试官与应聘者介绍 面试官:李明,某互联网大厂技术负责人,擅长Java后端、微服务及云原生架构。 应聘者:张伟,28岁,硕士学历,拥有5年…

新的 Gmail 网络钓鱼攻击利用 AI 提示注入来逃避检测

网络钓鱼一直以来都是为了欺骗人们。但在这次活动中,攻击者不仅瞄准用户,还试图操纵基于人工智能的防御系统。 这是我上周记录的Gmail 网络钓鱼链的演变。那次攻击活动依赖于紧迫性和重定向,但这次引入了隐藏的 AI 提示,旨在混淆…

Restful风格设计

文章目录什么是Restful风格?RESTful API设计最佳实践1. URL设计原则2. HTTP状态码的正确使用3. 统一的响应格式实际案例:用户管理系统API总结什么是Restful风格? 我的理解是:Restful是一种基于HTTP协议的架构设计风格&#xff0c…

深入 Glide 图像变换:自定义效果、GIF处理与组合变换

在 Android 开发中,Glide 的强大不仅在于其高效的加载和缓存能力,更在于其无与伦比的可扩展性,尤其是在图像处理层面。当内置的 fitCenter() 和 circleCrop() 无法满足你的设计需求时,自定义 Transformation 便是你的终极武器。本…

数据挖掘 4.8 评估泛化能力

4.8 Estimating Generalization 4.8 评估泛化能力 评估模型的泛化能力如何合理评估模型的泛化能力指导原则 (Guidelines)存在的问题 (Issues)K-fold 交叉验证(Cross-Validation)留一交叉验证(Leave One Out CV)(LOOCV)Stratification 分层训练…

46.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--网关集成日志

本篇文章,我们一起在网关中集成日志功能,我们要在网关中记录下游微服务出现的异常信息、请求信息以及响应信息。在微服务架构中,网关作为系统的入口,承担着非常重要的职责。通过在网关层面集成日志功能,我们可以更好地…

使用 FastAPI 的 WebSockets 和 Elasticsearch 来构建实时应用

作者:来自 Elastic Jeffrey Rengifo 学习如何使用 FastAPI WebSockets 和 Elasticsearch 构建实时应用程序。 更多阅读:使用 FastAPI 构建 Elasticsearch API 想要获得 Elastic 认证吗?看看下一次 Elasticsearch Engineer 培训什么时候开始&…

华为云ModelArts+Dify AI:双剑合璧使能AI应用敏捷开发

引言:AI应用开发的敏捷化转型需求 随着大语言模型(LLM)技术的迅猛发展,企业与开发者对AI应用开发的敏捷化转型需求日益凸显,亟需将大模型能力快速转化为实际业务价值。传统AI开发模式中,复杂的模型工程化、流程编排和部署维护工作往往需要专业技术团队支撑,典型痛点包括…

网络实践——Socket编程UDP

文章目录Socket编程UDPUDP接口的使用铺垫socketrecvform && sendtobind字节序转化使用(Tips)实践部分version_1echo_serverversion_2dict_serverversion_3chat_serverSocket编程UDP 在了解了相关的网络基础知识后,我们不会像学系统知识一样,先学…

GD32 波形发生器,三角波,正弦波,方波。AD9833+MCP410生成和MCU自身的DAC生成。波形,频率,振幅可以通过按键和OLED调整输出。

DIY一个简易的信号发生器驱动板,主要是三角波和正弦波,方波。主板有两个通道能输出波形,CH0由AD9833MCP410AD8051放大电路组成,理论可以生成0.1-12.5MHZ的频率信号,单电源振幅范围是1-9V。CH1由MCU外设DAC生成的信号&a…

VS2022的MFC中关联使用控制台并用printf输出调试信息

前言 MFC一般在调试的时候,可以在IDE中方便的看到调试的信息。但是,有时候运行的时候也要看调试的信息怎么办?最好如同在Console(控制台)程序中输出一般的方便,可以么?可以的。 一、设置 1.1、加…

ZKmall模块商城的推荐数据体系:从多维度采集到高效存储的实践

在电商领域,个性化推荐已成为提升用户体验与转化效率的核心手段。ZKmall 模块商城基于用户行为、商品属性与交易数据,构建了一套完整的推荐算法体系,而数据采集的全面性与存储的高效性是该体系的基础。本文将聚焦推荐算法的 “数据输入端”&a…

Qt + windows+exe+msvc打包教程

目录 1. Qt + windows+exe+msvc打包教程1 1.1. Enigma Virtual Box下载⏬1 1.2. Enigma Virtual Box安装2 1.3. Qt 打包成独立exe教程6 1.3.1. Qt项目创建6 1.3.2. Qt项目编译13 1.3.3. Qt 项目打包 windeployqt命令14 1.3.4. Qt 项目打包 Enigma Virtual Box工具18 Q…

大语言模型应用开发——利用OpenAI函数与LangChain结合从文本构建知识图谱搭建RAG应用全流程

概述 从文本等非结构化数据中提取结构化信息并非新鲜事物,但大语言模型(LLMs)为该领域带来了重大变革。以往需要机器学习专家团队策划数据集并训练自定义模型,如今只需访问LLM即可实现,显著降低了技术门槛&#xff0c…

Vue3+Spring Boot技术栈,前端提交混合表单数据(普通字段+文件字段),上传文件,后端插入数据,将文件保存到数据库

一、技术栈1、前端 Vue3 Element Plus TypeSprict2、后端 Spring Boot 3.2.12 Mybatis Plus3、模型特点3.1、表格展示列表数据3.2、行点击,弹出对话框3.3、前端使用 FormData 提交混合表单数据,包含普通字段和文件字段3.4、文件对应数据库结构类型为 …