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

history路由解决刷新出现404的问题

本文具体重点介绍怎么解决浏览器路由(history模式)解决404的问题。

        在项目打包上线时,如果采用的是哈希模式,不会出现404,原因是 url 中 # 号后面的内容不会发给后端当作资源路径请求服务器。

具体流程(哈希模式):

1. 前端项目写完之后,把src件夹打包 (利用webpack、babel把项目里面的jsx / vue 、scss文件变异成js、css和html),命令如下

npm run build
完成之后会出现 dist 文件夹,里面包含:

 该html文件需部署在服务器上才能正常显示(只有一个html文件,是因为项目本身是SPA),

新建static文件夹,将dist里面的文件放入static。

2. 搭建服务器

        新建一个文件夹用vscode打开后,

npm init
 
// 然后设置 package name,回车
 
npm i express
接着新建 server.js文件:

// common.js 规范

    // 引入 expressconst express = require('express')// 利用中间件 给服务器指定静态资源(打包后的项目文件)app.use(express.static(__dirname+'/static'))// 新建实例const app = express()// 配置后端路由app.get('/person',(request,response)=>{// 给浏览器返回的信息response.send({name:'tom',age:19})})// 开启监听app.listen(5005,(err)=>{if(!err) conslole.log('服务器启动成功!')})


3. 启动服务器

node server
可以看到: 

浏览器输入localhost:5005/person ,查看信息:

history 模式下刷新出现 404解决 

         1. 根据前端发送的请求以及后端已有的资源路径做判断(正则)匹配,区分哪些是前端路由哪些是后端路由。

        2. nginx 中间代理区分前后端路由

        3. node.js提供的中间件Connect

npm instal connect-history-api-fallback
// common.js 规范
 

// 引入 expressconst express = require('express')const history = require('connect-history-api-fallback');// 新建实例const app = express()app.use(history());// 利用中间件 给服务器指定静态资源(打包后的项目文件)app.use(express.static(__dirname+'/static'))// 配置后端路由app.get('/person',(request,response)=>{// 给浏览器返回的信息response.send({name:'tom',age:19})})// 开启监听app.listen(5005,(err)=>{if(!err) conslole.log('服务器启动成功!')})

http://www.lryc.cn/news/255410.html

相关文章:

  • ubuntu22下使用nvidia 2080T显卡部署pytorch
  • 【Spark基础】-- 理解 Spark shuffle
  • 软件测试入门:静态测试
  • 力扣labuladong一刷day30天二叉树
  • 【云原生-K8s】检查yaml文件安全配置kubesec部署及使用
  • LeetCode力扣每日一题(Java):20、有效的括号
  • 解决Flutter运行报错Could not run build/ios/iphoneos/Runner.app
  • 配置Smart Link主备备份示例
  • 03-微服务架构构建之微服务拆分
  • Linus:我休假的时候也会带着电脑,否则会感觉很无聊
  • 快速排序的新用法
  • 利用乔拓云SAAS系统,快速、高效搭建小程序
  • Kubernetes(K8s 1.27.x) 快速上手+实践,无废话纯享版
  • 非常抱歉的通知
  • rust 包模块组织结构
  • 深入浅出:HTTPS单向与双向认证及证书解析20231208
  • 水利安全监测方案——基于RTU200的解决方案
  • 安卓开发学习---kotlin版---笔记(一)
  • 挑选在线客服系统的七大注意事项
  • 剧本杀小程序搭建:打造线上剧本杀新体验
  • 机器学习实战:预测波士顿房价
  • 基于个微机器人的开发
  • 程序员学习方法
  • VUE+THREE.JS 点击模型相机缓入查看模型相关信息
  • cpu 300% 爆满 内存占用不高 排查
  • Halcon 简单的ORC 字体识别
  • 12月7日作业
  • 【腾讯云HAI域探密】- AIGC应用助力企业降本增效之路
  • 云原生之深入解析如何限制Kubernetes集群中文件描述符与线程数量
  • Django的Auth模块