位置: 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动态变化表格列)

  • 如何通过微信大号推广上万粉丝(微信怎么看自己的大数据)

    如何通过微信大号推广上万粉丝(微信怎么看自己的大数据)

  • 苹果xr信号不好是通病吗(苹果xr信号不好能维修吗)

    苹果xr信号不好是通病吗(苹果xr信号不好能维修吗)

  • 微信打字栏显示不出来?(微信打字栏显示不出来文字)

    微信打字栏显示不出来?(微信打字栏显示不出来文字)

  • 手机卡坏了补卡要钱吗(手机卡坏了补卡后怎么找回通讯录)

    手机卡坏了补卡要钱吗(手机卡坏了补卡后怎么找回通讯录)

  • b站电脑端可以缓存吗(B站电脑端可以打卡吗)

    b站电脑端可以缓存吗(B站电脑端可以打卡吗)

  • oppo手机键盘语音识别不了(oppo手机键盘语言切换在哪里)

    oppo手机键盘语音识别不了(oppo手机键盘语言切换在哪里)

  • 苹果11安兔兔跑分多少(iphone11安兔兔能跑多少分)

    苹果11安兔兔跑分多少(iphone11安兔兔能跑多少分)

  • 局域网的简称是什么(局域网的英文缩写为( ))

    局域网的简称是什么(局域网的英文缩写为( ))

  • 电脑耳机一边响一边不响怎么回事(电脑耳机一边响一边断开)

    电脑耳机一边响一边不响怎么回事(电脑耳机一边响一边断开)

  • 微信账号解冻后能用吗(微信账号解冻后又被冻结)

    微信账号解冻后能用吗(微信账号解冻后又被冻结)

  • 耳机有电流电耳朵怎么回事(耳机有电流声会损坏耳机吗)

    耳机有电流电耳朵怎么回事(耳机有电流声会损坏耳机吗)

  • ipad迷你分辨率能调吗(ipad mini6分辨率)

    ipad迷你分辨率能调吗(ipad mini6分辨率)

  • 打印照片怎么设置(打印照片怎么设置长和宽)

    打印照片怎么设置(打印照片怎么设置长和宽)

  • mate305g与mate30pro5g区别(mate305g与mate30pro5g芯片一样吗)

    mate305g与mate30pro5g区别(mate305g与mate30pro5g芯片一样吗)

  • 华为nova4采用什么屏幕(华为nova4功能有哪些)

    华为nova4采用什么屏幕(华为nova4功能有哪些)

  • 金立手机自带壁纸在哪(金立手机自带壁纸暗金)

    金立手机自带壁纸在哪(金立手机自带壁纸暗金)

  • ios怎么让闪光灯常亮(苹果怎么让闪光灯一直亮)

    ios怎么让闪光灯常亮(苹果怎么让闪光灯一直亮)

  • 安卓手机可以投屏到ipad上吗(安卓手机可以投屏到电脑上吗)

    安卓手机可以投屏到ipad上吗(安卓手机可以投屏到电脑上吗)

  • 淘宝店铺分数在哪里查(淘宝店铺分数多久清零)

    淘宝店铺分数在哪里查(淘宝店铺分数多久清零)

  • 小米平板4lte版能打电话吗(小米平板4lte版和wifi版的区别)

    小米平板4lte版能打电话吗(小米平板4lte版和wifi版的区别)

  • p30的返回键在哪(手机返回键怎么调)

    p30的返回键在哪(手机返回键怎么调)

  • 网易打不开怎么办?(网易打不开怎么退出游戏)

    网易打不开怎么办?(网易打不开怎么退出游戏)

  • Linux网卡乱序eth0变成eth1该怎么办?(linux网卡lo)

    Linux网卡乱序eth0变成eth1该怎么办?(linux网卡lo)

  • 注册资本没有全额怎么办
  • 外贸企业出口怎么写
  • 城建税属于什么税种
  • 印花税申报了什么时候扣款
  • 出纳可以做库存库吗
  • 个体工商户定期定额核定
  • 个体户自有厂房怎么申请
  • 虚开增值税普通发票罪的立案标准
  • 固定资产的折旧费用计入什么科目
  • 企业取得5%的房产增值税发票是否可以抵扣呢?
  • 财政补贴是什么
  • 政府补助收入总额等于
  • 进项发票认证多了留抵
  • 房租税费计入什么会计科目
  • 个人转租房屋的法律规定
  • 没进项发票要交多少税
  • 房产赠与税如何征收2021
  • 从成因解析如何把控出口退税的执法风险
  • 核定征收分几种
  • 增值税专用发票的税率是多少啊
  • 通行费发票可以抵扣吗
  • 实收资本账户的核算内容是什么
  • deepin隐藏分区
  • 怎么冲财务费用
  • win11如何设置安装位置
  • php extract函数
  • 发票报销的账务怎么处理
  • php通信协议
  • 改造租入房产而不退租
  • 前端打印语句
  • 增值税待认证进项税额
  • 捐钱扶贫
  • 财税2016年12号文件解读
  • Docker 搭建api
  • python slic
  • 以土地使用权投资入股的会计处理
  • 以前年度未处理的业务
  • 个人所得税孩子教育怎么申报
  • 使用mysql命令
  • 公司制作横幅计入什么科目?
  • 现金流量表的编制公式 计算公式
  • 净资产增加数怎么计算
  • 广告公司转让一般多少钱
  • 主营业务成本为什么属于损益类科目
  • 支付单位结算卡费用计入什么科目
  • 递延收益在资产负债表哪里列示
  • 赔偿款从货款扣除怎么做账
  • 办公室租金发票可以扺增值税吗
  • 企业年报修改后没有公示怎么办
  • 收回已转销的应收账款而恢复的坏账准备
  • 酒店财务帐务处理方案
  • 批量查询sql语句
  • 清空数据库中所有表的数据
  • sql的all和any
  • w10预览版新功能
  • Win10 Mobile Build 10549正式推送:须回滚到WP8.1升级
  • 在Vista、Windows7下玩英雄无敌3绿色版
  • solaris 创建文件
  • 电脑进程wsappx是什么
  • win7系统开机后很卡什么原因
  • win8 资源管理器
  • xp文件夹选项不见了怎么办
  • macbookpro安装双系统win7系统
  • pphelper是什么文件
  • win8修改锁屏壁纸
  • oracle linux版
  • EXTjs4.0的store的findRecord的BUG演示代码
  • shutdown命令不能运行
  • jquery 滑块
  • 使用jquery实现的项目
  • js实现的简洁二次函数
  • node解决跨域
  • 浅析jQuery Ajax通用js封装
  • python复制sheet
  • 什么是总分机构汇总纳税
  • 邮储银行优势及特长简介
  • 外经证注销网上操作
  • 税务系统电子发票的详细步骤
  • 个人租车收入如何缴纳个人所得税
  • 白酒消费税应纳税额
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设