四、【React-Router5】样式丢失问题

news2024/10/6 0:37:34

文章目录

  • 1、先上结论
  • 2、修改上一节代码
  • 3、发现问题
  • 4、分析原因
  • 5、3个解决办法

1、先上结论

  1. public/index.html 中 引入样式时不写 ./ 写 / [ 常用 ]
  2. public/index.html 中 引入样式时不写 ./ 写 %PUBLIC_URL% [ 常用 ]
  3. 使用 HashRouter

2、修改上一节代码

点击访问 上节代码;有点套娃,请耐心查看

然后确定在 index.html 里引入样式代码是这样写的:
<link rel="stylesheet" href="./css/bootstrap.css">

<MyNavLink to="/xxx/about">About</MyNavLink>
<MyNavLink to="/xxx/home">Home</MyNavLink>

<Switch>
    <Route path='/xxx/about' component={About} />
    <Route path='/xxx/home' component={Home} />
</Switch>

3、发现问题

点击路由跳转后刷新页面,结果:样式丢失,效果图如下

在这里插入图片描述

4、分析原因

  • 正常请求的样式文件地址:http://localhost:3000/css/bootstrap.css
  • 修改后样式文件请求地址:http://localhost:3000/xxx/css/bootstrap.css

问题很明显,这个地址下并没有 bootstrap.css 文件,默认返回了 index.html 文件,响应结果如下所示:

在这里插入图片描述

5、3个解决办法

  1. 使用绝对路径】index.html 里引入样式代码改成这样:

    1. <link rel="stylesheet" href="/css/bootstrap.css">
  2. 使用绝对路径】index.html 里引入样式代码改成这样:

    1. <link rel="stylesheet" href="%PUBLIC_URL%/css/bootstrap.css">
  3. 改用HashRouter】index.js 改成如下:

    1. import React from 'react';
      import ReactDOM from 'react-dom/client';
      import { HashRouter } from 'react-router-dom'
      import App from './App';
      
      const root = ReactDOM.createRoot(document.getElementById('root'));
      root.render(
        <React.StrictMode>
          <HashRouter>
            <App />
          </HashRouter>
        </React.StrictMode>
      );
      
    2. 使用HashRouter不管怎么刷新,地址栏都是 http://localhost:3000/#/xxx/about,# 号前面才是真正的地址,后面都是哈希值,不会拼接到请求地址上,同样避免了上面的问题

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]SSM计算机毕业设计学生档案管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【错误 :Segmentation fault 】以及gdb调试 core duumped文件

core dumped文件&#xff08;核心转储文件&#xff09; 当进程意外终止&#xff0c;系统可以将该进程的地址空间的内容急终止的一些其它信息转储到核心转储文件 它的触发条件&#xff0c;当系统收到以下信号时就会产生coredumped文件。 SIGABRT &#xff1a;异常终止(abort)时…

野火FPGA进阶(1):基于SPI协议的Flash驱动控制

文章目录第48讲&#xff1a;基于SPI协议的Flash驱动控制0. 理论部分1. Flash全擦除实验key_filterflash_be_ctrlspi_flash_betb_flash_be_ctrltb_spi_flash_be2. Flash扇区擦除实验key_filterflash_se_ctrlspi_flash_se3. 数据读操作key_filteruart_txflash_read_ctrlspi_flash…

专注于元宇宙实际应用方案的企业

元宇宙的话题持续火热。国内互联网大厂正在加大对元宇宙相关技术和应用的研发&#xff0c;元宇宙正在逐步成为创新创业的主战场。企业元宇宙在教育、会展、文创、旅游、博物馆、文化艺术、娱乐、社交、版权、零售等等领域发力&#xff0c;增加客户对企业的认同。 也许未来只需一…

接口测试学习第一天

1. 接口 接口的定义&#xff1a;是指系统或组件之间的交互点&#xff0c;通过这些交互点可以实现数据的交互。&#xff08;数据交互的通道&#xff09; 接口的分类&#xff1a;硬件接口和软件接口&#xff1b;我们这里只关注软件层面的接口&#xff1b; 1.1 接口的类型 接…

LeetCode-28-找出字符串中第一个匹配项的下标

1、KMP算法$$ 解决本问题最简单的方法就是暴力穷举&#xff0c;思路简单但时间复杂度为O(m∗n)O(m*n)O(m∗n)。此处我们仅考虑最优的KMP算法&#xff0c;时间复杂度为O(mn)O(mn)O(mn)。 KMP算法的优化之处在于当我们对比haystackhaystackhaystack和needleneedleneedle时&…

[附源码]计算机毕业设计springboot基于Java酒店管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

亚马逊商品销售数据爬虫分析报告

家电产业和消费者升级悄然地展开。 市场的这种变化使消费者对家用电器的期望不再仅仅是一个简单的功能满足&#xff0c;而是更多的细节体验和技术创新。 通过洞察家用电器的消费特点&#xff0c;有利于确定市场的未来趋势&#xff0c;从而积极应对市场变化。 ▼ 我们围绕亚马逊…

AI智能视频技术在考古工作中的安防应用

文物考古关系着民族文化的传承、历史的记录与保留&#xff0c;工作意义重大。考古发掘工地由于面积大、区域多且分散&#xff0c;以及周边环境复杂&#xff0c;因此安全防护工作开展困难&#xff0c;整体的安全形势不容乐观。 一、考古现场安保面临问题&#xff1a;1、考古遗址…

K - Scholomance Academy Gym - 103202K

题目链接 题意&#xff1a;很长&#xff0c;读了很长时间才懂&#xff1a; 就是给一个物品评分&#xff0c;假设分数大于等于x&#xff0c;就将其判断为正数&#xff0c;否则判断为负数 这样判断肯定会出现一些误判&#xff0c;那么我们将判为负数的正数成为假正数&#xff0…

C. Set or Decrease(二分 + 有两个不确定情况如何二分)

Problem - 1622C - Codeforces 给你一个整数数组a1,a2,...,an和整数k。 在一个步骤中&#xff0c;你可以 选择某个索引i并将ai减少1&#xff08;使aiai-1&#xff09;。 或者选择两个索引i和j&#xff0c;将ai等于aj&#xff08;使aiaj&#xff09;。 为了使数组∑i1nai≤k的…

启动服务提供者报 zookeeper not connected错

今天启动zookeeper的服务提供者后&#xff0c;报 zookeeper not connected错&#xff0c;记录一下解决过程 意思是zookeeper注册中心连接不上&#xff0c;无非两个原因&#xff1a; 第一&#xff1a;zookeeper没有启动好。第二&#xff1a;zookeeper的ip以及端口号配置没配好 …

算法day35|860,406,452

目录 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球 860.柠檬水找零 class Solution:def lemonadeChange(self, bills: List[int]) -> bool:five,ten,twenty 0,0,0for bill in bills:#情况一&#xff1a;如果bills是5元&#xff0c;不需要找零if bill…

黑马点评--附近商铺

附近商铺 GEO数据结构 GEO就是Geolocation的简写形式&#xff0c;代表地理坐标。Redis在3.2版本加入了对GEO的支持&#xff0c;允许存储地理坐标消息&#xff0c;帮助我们根据经纬度来检索数据。常见的命令有&#xff1a; GEOADD&#xff1a;添加一个地理空间信息&#xff0…

gcexcel-java-5.2.5 Crack update in 2022-11-28

gcexcel高速 Java Excel 电子表格 API 库 在 Java 应用程序中以编程方式创建、编辑、导入和导出 Excel 电子表格。几乎可以在任何地方部署。 创建、加载、编辑和保存 Excel 电子表格 保存为 .XLSX、PDF、HTML、CSV 和 JSON 基于具有零 Excel 依赖性的 Excel 对象模型 在本地、…

Tomcat负载均衡部署动静分离

NginxTomcat架构拓扑 环境部署 Nginx服务器&#xff1a;IP地址192.168.32.3 Tomcat服务器1&#xff1a;IP地址192.168.32.4 Tomcat服务器2&#xff1a;IP地址192.168.32.5 关闭防火墙&#xff0c;关闭开机自启 systemctl stop firewalld.service setenforce 0Nginx 主机安…

计算机组成原理习题课第三章-1(唐朔飞)

计算机组成原理习题课第三章-1&#xff08;唐朔飞&#xff09; ✨欢迎关注&#x1f5b1;点赞&#x1f380;收藏⭐留言✒ &#x1f52e;本文由京与旧铺原创&#xff0c;csdn首发&#xff01; &#x1f618;系列专栏&#xff1a;java学习 &#x1f4bb;首发时间&#xff1a;&…

高电压放大器与高电流放大器该如何选择使用

虽然电压放大器和电流放大器都属于功率放大器的分支类型&#xff0c;所能起到的效果和作用也都是一致的&#xff0c;不过两者还是细微差别的。经常会有人在后台咨询“电压放大器和电流放大器有什么区别&#xff0c;该如何选择使用”等等&#xff0c;针对这些疑问&#xff0c;今…

zynq实现视频动态字符叠加OSD,提供2套工程源码和技术支持

目录1.网上同行的OSD方案(太low)2.本方案OSD的优势3.HLS实现方案4.OSD延时和资源占用情况5.工程1&#xff1a;zynq7100实现字符叠加6.上板调试验证7.福利&#xff1a;工程源码获取1.网上同行的OSD方案(太low) 视频的字符叠加&#xff0c;简称OSD&#xff0c;是FPGA图像处理的基…

PG::Vegeta1

nmap -Pn -p- -T4 --min-rate1000 192.168.201.73 nmap -Pn -p 22,80 -sCV 192.168.201.73 查看80端口的服务。 没有发现可用的信息&#xff0c;尝试爆破路径。 gobuster dir -e -w /usr/share/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-big.txt -u htt…