Vue2:路由history模式的项目部署后页面刷新404问题处理

一、问题描述

我们把Vue项目的路由模式,设置成history
然后,build
并把dist中的代码部署到node+express服务中
访问页面后,刷新页面报404问题
在这里插入图片描述

二、原因分析

server.js文件
会发现,文件中配置的路径没有Vue项目中对应的路径
所以,刷新页面时,报404
这也是history模式的一个小问题。

const express = require('express')
const app = express()
app.use(express.static(__dirname+'/static'))

app.get('/students',(request,response)=>{
	const students = [
		{id:'001',name:'tom',age:18},
		{id:'002',name:'jerry',age:19},
		{id:'003',name:'tony',age:120},
	]
	response.send(students)
})

app.listen(5000,(err)=>{
	if(!err) console.log('服务器1启动成功了,请求学生信息地址为:http://localhost:5000/students');
})

三、解决

这个问题的本质,是请求路径在后端没对应上
所以,要解决这个问题,需要从后端代码着手

我这里用的是node+express部署项目
就这个情况,来解决

1、安装connect-history-api-fallback中间件

npm i connect-history-api-fallback

2、修改server.js
关键代码:

const history = require('connect-history-api-fallback')
app.use(history())

完整配置:

const express = require('express')
const history = require('connect-history-api-fallback')

const app = express()
app.use(history())
app.use(express.static(__dirname+'/static'))

app.get('/students',(request,response)=>{
	const students = [
		{id:'001',name:'tom',age:18},
		{id:'002',name:'jerry',age:19},
		{id:'003',name:'tony',age:120},
	]
	response.send(students)
})

app.listen(5000,(err)=>{
	if(!err) console.log('服务器1启动成功了,请求学生信息地址为:http://localhost:5000/students');
})

重启项目,即可。
此时,刷新页面,不会报404问题。

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

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

相关文章

python报名人数 2023年9月青少年编程电子学会python编程等级考试二级真题解析

目录 python报名人数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python报名人数 2023年9月 python编程等级考试级编程题 一、题目要求 1…

20240301-1-ZooKeeper面试题(一)

1. ZooKeeper 面试题? ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 分布式应…

专家揭密,OLED透明屏原的原理

OLED透明屏的原理主要基于OLED(有机发光二极管)的发光特性。这种屏幕使用透明的电极和有机材料层,通过电流激发有机材料层中的载流子,使其进入发光材料并发生电荷复合,从而释放出光能。 具体来说,OLED透明屏…

【嵌入式】STM32控制脉冲个数

控制脉冲个数两种方式:中断技术、主从定时器技术。 1.主从模式控制 2.cubemx配置 2.1主定时器 以TIM3为例子。 1)从模式:失能; 2) 触发源:不选择; 3)内部时钟:勾选; 4)输出通道:CH2 pwm模式; 5)单脉冲模式:不选择;

006-CSS-常见问题汇总

常见问题汇总 1、伪元素与伪类2、偏门但好用的样式3、文字溢出三个点展示4、空白折叠问题5、文字的垂直居中6、 Vue项目中 在父组件中修改子组件样式7、BFC 概念7.1、兄弟元素外边距合并7.2、父子元素外边距塌陷 8、box-sizing8.1、box-sizing: border-box8.2、box-sizing: con…

Tensorflow2.0+部署(tensorflow/serving)过程备忘记录Windows

Tensorflow2.0部署(tensorflow/serving)过程备忘记录 部署思路:采用Tensorflow自带的serving进模型部署,采用容器docker 1.首先安装docker 下载地址(下载windows版本):https://desktop.docke…

VM新建虚拟机

目录 一、前言二、下载镜像三、新建虚拟机 一、前言 上一篇文章我们介绍了VMware Workstation 15 Pro的安装与破解 ,这篇文章我们介绍一下新建虚拟机 二、下载镜像 Linux使用最多的是CentOS和Ubuntu,下面是下载地址 Centos7:https://www.centos.org/…

MySQL 主从同步模式

MySQL主从同步是一种数据库复制技术,其中一个MySQL数据库服务器(主服务器)上的更改会被自动地传播到一个或多个其他数据库服务器(从服务器)。这有助于提高系统的可伸缩性、可用性和容错性。以下是设置MySQL主从同步的基…

颜永红:大模型时代的智能音频处理 | 演讲嘉宾公布

一、GAS 2024 2024中国国际音频产业大会(GAS)将于2024年3.27 - 28日在上海张江科学会堂举办。大会将以“音无界,未来(Audio, Future)”为主题。大会由中国电子音响行业协会、上海市浦东新区先进音视频技术协会共同主办&#xff0c…

【详识JAVA语言】String类oj练习

1. 第一个只出现一次的字符 class Solution { public int firstUniqChar(String s) {int[] count new int[256];// 统计每个字符出现的次数for(int i 0; i < s.length(); i){count[s.charAt(i)];}// 找第一个只出现一次的字符for(int i 0; i < s.length(); i){if(1 …

openinstall支持“荣耀商推”广告效果监测

近日&#xff0c;openinstall广告效果监测服务已全面对接荣耀商推渠道&#xff0c;开发者通过集成openinstall作为第三方归因服务商&#xff0c;可快速归因监测荣耀应用商店、荣耀浏览器、荣耀阅读、荣耀视频等生态资源的广告投放效果&#xff0c;以及通过配置回调事件做投放优…

ViT再升级!9个视觉transformer最新改进方案让性能飞跃

通过优化ViT结构和训练策略&#xff0c;我们可以提高模型的性能和计算效率&#xff0c;增强模型对局部信息的捕捉能力。同时解决一些原有模型存在的问题。 比如原始的ViT模型在处理高分辨率图像时&#xff0c;由于自注意力机制的计算复杂度与序列长度相关&#xff0c;会导致较…

rabbitmq4

独占队列&#xff1a;我们的队列只能被当前通道所绑定&#xff0c;不能被其他的连接所绑定&#xff0c;如果有其他的通道或连接再使用此队列的话&#xff0c;会直接报错&#xff0c;一般设置为false&#xff1a; autoDelete&#xff1a;消费者在消费完队列&#xff0c;并且彻底…

来分析一下dom破坏

一、如图 我们在这串代码的情况下看一下打印状态 打印x和y的时候把标签打印出来了&#xff0c;而document没有打印出来x值&#xff0c;所以我们要考虑特性 可以看到我们接下来的验证&#xff0c;其中document.cookie 已经被我们⽤img 标签给覆盖了 接下来覆盖系统函数 既然我们…

Linux 文件系列:深入理解文件描述符fd,重定向,自定义shell当中重定向的模拟实现

Linux 文件系列:深入理解文件fd,重定向,自定义shell当中重定向的模拟实现 一.预备知识二.回顾C语言中常见的文件接口跟重定向建立联系1.fopen函数的介绍2.fclose函数的介绍3.代码演示1.以"w"(写)的方式打开2.跟输出重定向的联系3.以 "a"(追加)的方式打开4.…

基于springboot+vue的校园爱心捐赠互助管理系统(源码+论文)

目录 前言 一、功能设计 二、功能实现 三、库表设计 四、论文 前言 随着经济水平和生活水平的提高在校大学生在校需要处理的物品也在不断增加&#xff0c;同时校园内还存在很多贫困生&#xff0c;可以通过线上平台实现资源的整合和二次利用&#xff0c;通过线上平台求助信…

LeetCode Python - 32.最长有效括号

目录 题目答案方法一&#xff1a;动态规划方法二&#xff1a;使用堆栈 运行结果方法一方法二 题目 给你一个只包含 ‘(’ 和 ‘)’ 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号 子串的长度。 示例 1&#xff1a; 输入&#xff1a;s “(()”…

机器学习入门-小白必看

机器学习 1. 机器学习的基本概念与背景2. 机器学习的常用方法3.是否需要学习机器学习&#xff0c;机器学习已经过时了&#xff1f;&#xff1f;4. 如何在机器学习上进行创新&#xff1f;5. 我该用哪种机器学习方法&#xff0c;如何定下来呢&#xff1f;总结&#xff08;对小白的…

O2O:Actor-Critic Alignment for Offline-to-Online Reinforcement Learning

ICML 2023 Poster paper 1 Introduction O2O容易因为分布偏移导致策略崩溃&#xff0c;解决方法包括限制策略偏移计以及平衡样本采样等。然而这些方法需要求解分布散度或者密度比(density ratio)。为了避免这些复杂操作&#xff0c;本文并不采用以往AC方法对Q值进行变形&…

【笔记】Android 漫游定制SPN定制有关字段

一、SPN模块简介 【笔记】SPN和PLMN 运营商网络名称显示 Android U 配置 WiFiCalling 场景下PLMN/SPN 显示的代码逻辑介绍 【笔记】Android Telephony 漫游SPN显示定制&#xff08;Roaming Alpha Tag&#xff09; 二、相关配置字段 non_roaming_operator_string_array 是否…