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

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 规范

    // 引入 express
    const 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 规范
 

// 引入 express
    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('/person',(request,response)=>{
    // 给浏览器返回的信息
        response.send({
            name:'tom',age:19
        })
    })
    // 开启监听
    app.listen(5005,(err)=>{
      if(!err) conslole.log('服务器启动成功!')
    })


http://www.kler.cn/a/159044.html

相关文章:

  • 代码版本管理艺术
  • paddle表格识别数据制作
  • v-html 富文本中图片使用element-ui image-viewer组件实现预览,并且阻止滚动条
  • ubuntu安装 Pycharm
  • 微信小程序:vant组件库安装步骤
  • cmake生成器表达式
  • go-fastfds部署心得
  • 四.多表查询
  • bootstrap中的图标元素可以免费使用
  • 怎么验证公钥和私钥是一对
  • VMware虚拟机系统CentOS镜像的下载
  • Hadoop学习笔记(HDP)-Part.13 安装Ranger
  • 【深度学习】回归模型相关重要知识点总结
  • HarmonyOS学习--初次下载安装和配置环境
  • SQL Server 2008 使用concat报错
  • Matlab 镜像变换(2D)
  • 有基础转Go语言学习笔记(2. 基本数据结构篇)
  • 【答疑解惑】什么时候需要将数据集划分为训练集和测试集,什么时候需要划分为训练集、验证集和测试集?
  • (未传知网)大数据环境下的隐私安全的图像特征提取及应用
  • IT外包模式兼具优势与挑战:企业如何利用其进行降本增效?
  • ABCDE类网络的划分及保留网段
  • DS图应用--最短路径
  • Es条件查询
  • 《智能决策技术及应用》笔记
  • 面试多线程八股文十问十答第三期
  • 服务器无法访问外网是怎么回事