位置: IT常识 - 正文

vue/react项目刷新页面出现404的原因以及解决办法(react 刷新)

编辑:rootadmin
vue/react项目刷新页面出现404的原因以及解决办法 vue/react项目刷新页面出现404的原因以及解决办法背景解决办法文章参考背景

推荐整理分享vue/react项目刷新页面出现404的原因以及解决办法(react 刷新),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react如何刷新当前页面,react 刷新,react刷新组件不刷新页面,react 刷新页面,react 刷新,react 刷新,react 刷新,react 刷新页面,内容如对您有帮助,希望把文章链接给更多的朋友!

问题描述:vue/react项目,正常的页面操作跳转,不会出现404的问题,但是一旦刷新,就会出现404报错。

产生原因:我们打开vue/react打包后生成的dist文件夹,可以看到只有一个 index.html 文件及一些静态资源,这个是因为vue/react是单页应用(SPA),只有一个index.html作为入口文件,其它的路由都是通过JS来进行跳转的。 而网页上显示的是静态资源的绝对路径,虽然浏览器上的url变化了,但实际上服务器的静态资源是没有更改路径的,始终只有index.html这一个入口,所以刷新就会导致url上的路径和服务器上的资源不匹配,无法找到静态资源,从而报错404。(多页应用因为有多个入口文件,所以不会有这样的问题)。

接下来我们看看服务器上的nginx配置:

server { // 监听80端口 listen 80; // 定义你的站点名称 server_name website.com; // 根据请求 URI 设置配置 location / { // 站点根目录,这里为 vue 构建出来的 dist 目录 root /www/dist; // 站点初始页为index.html 或 index.htm index index.html index.htm; }}vue/react项目刷新页面出现404的原因以及解决办法(react 刷新)

根据nginx配置我们可以得出,当我们在地址栏输入域名(如www.xxx.com)时,这时会打开我们 dist 目录下的 index.html 文件,然后我们再通过页面操作跳转路由进入到 www.xxx.com/login,关键在这里,当我们在 www.xxx.com/login 页执行刷新操作,nginx location 是没有相关配置的,所以就会出现 404 的情况。

解决办法

法1:将vue/react路由模式由history路由改为hash路由

为什么hash模式下没有问题: hash路由的原理是onhashchange事件,hash模式下,仅hash符号之前的内容会被包含在http请求中,如www.xxx.com/#/login,hash的值为 #/login,hash值#/login虽然出现在 url中,但不会被包括在http请求中,其只会请求www.xxx.com,对服务端完全没有影响,因此改变hash不会重新加载页面,即使服务器nginx没有配置location,也不会返回404错误。

history模式:原理是利用了h5的Interface 中的pushState()方法和replaceState()方法,它们提供了对浏览器历史记录进行修改的功能,但当它们执行修改时,虽然改变了当前的 URL,但浏览器不会立即向服务器发送请求,因此history模式正常页面操作跳转路由,是不会再次发送http资源请求的。但是当刷新的时候,由于url已经改变,如www.xxx.com/login会完整地向服务器请求相关资源,所以就会造成对应路径的资源找不到,从而返回404。

但是使用hash路由,url上会携带#号标志,且history模式的同步更新浏览器历史记录功能就没有了。

法2:在服务器nginx配置文件里,添加如下代码,再重启nginx,刷新网页就OK了

location / { try_files $uri $uri/ @rewrites; index index.html;}location @rewrites { rewrite ^.*$ /index.html last;}文章参考

https://www.cnblogs.com/echohye/p/16566706.html https://www.jb51.net/article/256217.htm https://www.cnblogs.com/ling-yu-amen/p/11533726.html

本文链接地址:https://www.jiuchutong.com/zhishi/290251.html 转载请保留说明!

上一篇:自己动手搭网站(六):javaweb搭建一个简单的个人博客系统(自己搭建网站怎么赚钱)

下一篇:el-table 列的动态显示与隐藏(element动态变化表格列)

  • 华为荣耀9青春版怎样省电(华为荣耀9青春版支持高清通话吗?)

    华为荣耀9青春版怎样省电(华为荣耀9青春版支持高清通话吗?)

  • 抖音上传视频怎么删掉(抖音上传视频怎么没有美颜功能)

    抖音上传视频怎么删掉(抖音上传视频怎么没有美颜功能)

  • 微信里怎么找自己的健康码(微信里怎么找自己的群)

    微信里怎么找自己的健康码(微信里怎么找自己的群)

  • 打电话占线时怎么不提示你好你所拨打(打电话占线时怎么查话费)

    打电话占线时怎么不提示你好你所拨打(打电话占线时怎么查话费)

  • 网易云粉团会掉吗(网易云粉团退出会退钱吗)

    网易云粉团会掉吗(网易云粉团退出会退钱吗)

  • 华为Nova5一机两个微信怎么安装(华为nova5双屏怎么弄)

    华为Nova5一机两个微信怎么安装(华为nova5双屏怎么弄)

  • 哔哩哔哩会员可以几个人用(哔哩哔哩会员可以几个人一起用)

    哔哩哔哩会员可以几个人用(哔哩哔哩会员可以几个人一起用)

  • 华为出现hd是什么意思啊(华为屏幕出现hd)

    华为出现hd是什么意思啊(华为屏幕出现hd)

  • 内存储器由什么组成(内存的存储器)

    内存储器由什么组成(内存的存储器)

  • 微信群发多少消息会封号(微信群发多少消息会封号多久解封)

    微信群发多少消息会封号(微信群发多少消息会封号多久解封)

  • 叨叨记账如何获得体力值(叨叨记账如何获得体力)

    叨叨记账如何获得体力值(叨叨记账如何获得体力)

  • 手机号注销了还能查到个人信息吗(手机号注销了还能收到验证码吗)

    手机号注销了还能查到个人信息吗(手机号注销了还能收到验证码吗)

  • 发微信对方收不到是什么原因(发微信对方收不到信息咋回事)

    发微信对方收不到是什么原因(发微信对方收不到信息咋回事)

  • 红米k305g上市时间(红米k30 5g上市)

    红米k305g上市时间(红米k30 5g上市)

  • 为什么抖音用微信登录说没有获得权限(为什么抖音用微信登不上有权限)

    为什么抖音用微信登录说没有获得权限(为什么抖音用微信登不上有权限)

  • word怎么打尾注(word文档中尾注符号设置)

    word怎么打尾注(word文档中尾注符号设置)

  • 微型计算机微处理器包括(微型计算机微处理器的主要功能)

    微型计算机微处理器包括(微型计算机微处理器的主要功能)

  • 荣耀20青春版是侧边指纹吗(荣耀20青春版是什么意思)

    荣耀20青春版是侧边指纹吗(荣耀20青春版是什么意思)

  • 小米手环怎么检测睡觉(小米手环怎么检测心率)

    小米手环怎么检测睡觉(小米手环怎么检测心率)

  • 苹果x怎么设置双击亮屏(苹果x怎么设置应用锁)

    苹果x怎么设置双击亮屏(苹果x怎么设置应用锁)

  • 拼多多砍价审核能通过吗(拼多多砍价审核不通过)

    拼多多砍价审核能通过吗(拼多多砍价审核不通过)

  • windows10如何分区(windows10怎么分区)

    windows10如何分区(windows10怎么分区)

  • macOS 10.15怎么升级? macOS 10.15升级图文教程(macos10.10.5怎么升级)

    macOS 10.15怎么升级? macOS 10.15升级图文教程(macos10.10.5怎么升级)

  • 从环绕山峰的小径最高点看到的拉瓦莱多三峰山,意大利 (© AWL Images/Danita Delimont)(环绕着山的是什么歌)

    从环绕山峰的小径最高点看到的拉瓦莱多三峰山,意大利 (© AWL Images/Danita Delimont)(环绕着山的是什么歌)

  • 会费收入增值税申报
  • 纳税人异地预缴税款
  • 组成计税价应该是含税价还是不含税价?
  • 放弃退税理由是什么
  • 房产税的计税依据包含增值税吗
  • 合作社收到政府补助款怎么做分录呢
  • 高速公路通行费发票怎么开
  • 租车属于经营租赁吗
  • 滞纳金按年怎么算
  • 房地产开发企业会计科目
  • 企业平时计提的税费分录
  • 小规模开票数量怎么算
  • 330税盘费是什么意思?
  • 修理费要开税控清单吗
  • 应收票据背书转让以取得所需物资
  • 应收账款应计利息公式如何理解
  • 加工费可以计入管理费用吗
  • 个人银行卡转公账怎么转
  • 苹果电脑如何缩小图片大小
  • 股权出售是利空还是利好
  • 主板bios在线升级
  • win10怎么样禁止电脑运行某个程序
  • 小米无线路由器internet黄灯
  • 土地增值税清算管理规程
  • 挂靠借用资质账务处理?
  • 科罗拉多斯普林斯海拔
  • php面向过程
  • php图形图像处理技术
  • 其他应付款转入管理费用
  • 发票带折扣怎么开
  • element ui
  • 一文通透从输入URL到页面渲染的全过程----高频面试
  • Laravel5.1自定义500错误页面示例
  • css 入门
  • 固定资产清理属于非流动资产吗
  • 季度所得税申报怎么弥补以前年度亏损
  • 白酒贴牌酒是真酒还是假酒
  • 长期股权投资核算的成本法与权益法的主要差别有哪些
  • php屏蔽ip
  • 政府扶持资金所得税税率
  • 本期发生的下列业务中,根据权责发生制原则
  • 制造费用结转本年利润吗
  • 成品油发票怎么录入库存
  • 预收账款和应收账款可以合并吗
  • 企业报税表格填写
  • 教育费附加减免性质代码
  • 销售奖金交税由谁承担
  • 企业缴纳员工社保会计分录
  • 2017年6月,小张买了一台笔记本电脑,其主要硬件参数
  • 增值税专用发票的税率是多少啊
  • 跨年度发票作废已交税怎么办
  • 成品油生产库存
  • 差旅费用包含哪些
  • 本年利润的会计科目代码
  • 什么是个人独资企业营业执照
  • 如何修改注册表键值
  • assoc.exe
  • win10联想笔记本还原系统
  • xp系统怎么装系统教程
  • windowsxp的主要特点是什么
  • 电脑开机后出现win7画面后一直黑屏
  • win10正版和盗版区别大吗
  • win10预览体验计划不显示
  • mysql如何建立数据完整性约束
  • 防止非法使用计算机,可口令
  • ie等级
  • es6 变量的解构赋值
  • bat批量处理
  • cocos creator rpg
  • javascript运用
  • javascript总结
  • 天气球球下载
  • 安卓手机管家下载
  • javascript数据类型有哪些
  • android天气预报课程设计报告
  • python flask框架 web服务器
  • 辽宁省国家税务局电话
  • 起诉公司需要法人信息吗
  • 企业筹建期间发生的费用应计入什么账户
  • 企业可以享受哪些政策优惠
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设