antd将icon图标本地化

本文介绍如何解决使用ReactJS结合Ant Design框架在内网部署时遇到的字体图标加载失败的问题。通过从官方资源库下载图标文件并进行本地配置,确保图标能在内网环境中正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:使用reactjs+antd 开发的前端迁移到内网后,字体图标丢失

解决:

1、到官方资源库下载图标,地址:http://1x.ant.design/docs/resource/download

2、删除demo*的内容,将剩下的文件新建一个文件夹放入工程的任意一个位置

3、如果要在某一个页面中使用图标,那么在该页面的css文件中添加一下内容:

@font-face {font-family: 'iconfont';
    src: url('../iconfont.eot'); /* IE9*/
    src: url('../iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
    url('../iconfont.woff') format('woff'), /* chrome、firefox */
    url('../iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
    url('../iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
}

其中,url的位置可以根据实际位置更改。

然后在相同位置添加:

.iconfont{
    font-family:"iconfont" !important;
    font-size:16px;font-style:normal;
    -webkit-font-smoothing: antialiased;
    -webkit-text-stroke-width: 0.2px;
    -moz-osx-font-smoothing: grayscale;}

测试发现图标无padding,可以适当调整padding,如 padding-left: 10px

4、使用时:

<i className="iconfont">&#xe695;</i>

### 如何在 Ant Design 中添加和使用自定义 Icon #### 使用 `@ant-design/icons` 库中的图标 对于想要利用官方提供的图标,在项目中安装依赖: ```bash npm install @ant-design/icons --save ``` 之后可以在组件内引入并使用这些图标。 ```jsx import { SmileOutlined } from '@ant-design/icons'; function App() { return ( <SmileOutlined /> ); } ``` 此方法适用于官方维护的图标集[^1]。 #### 利用 `iconfont` 图标库 当需求超出官方图标范围时,可以借助阿里云提供的 `iconfont` 平台创建自己的图标集合,并通过 URL 形式集成到应用里。具体操作如下所示: 先访问 [IconFont](https://www.iconfont.cn/) 创建所需图标集合,获取在线字体链接地址。接着按照下面的方式封装成可重用函数以便随时调取特定名称的图标。 ```jsx // utils/icon.js import React from 'react'; import styles from './index.less'; // 假设有一个样式文件用于加载 web font export default function getIcon(className) { return props => ( <i className={`${styles.iconfont} ${className}`} {...props}></i> ); } ``` 上述代码片段展示了如何构建一个简单的工具类来动态生成带有指定样式的 `<i>` 标签实例作为自定义图标组件[^3]。 #### 完全自定义菜单图标 如果是在 Ant Design Pro 这样的框架下工作,则可以通过覆盖默认配置实现更灵活的控制。例如修改路由配置项里的 `icon` 字段指向新的路径或 SVG 文件等静态资源。 ```jsx { name: '仪表盘', icon: () => <img alt="example" src="/path/to/image.png"/>, path: '/', }, ``` 这种方式允许开发者根据实际情况选择最合适的方案,无论是继续沿用现有的矢量图形还是切换至其他形式的表现方式[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值