问题描述:使用reactjs+redux+antd搭建的前端框架,部署在内网之后发现图标丢失。
解决:
1、尝试将antd的图标本地化,虽然本地化成功,但是图标无法实现动态加载,即无法实现根据后台返回的json自动加载图标:
title={<span><i className="iconfont">3</i><span style={{fontSize:'16px'}}>{v.txt}</span></span>}>
<i>标签中的内容必须是特殊字符串,而不能是{v.icon},这样就导致无法动态加载图标。(上一篇博客有介绍如何做)
2、尝试使用font-awesome图标,成功。
(1)下载 font-awesome.min.css到本地,新建文件夹放到index.html同级目录
(2) 在index.html中引用以上css文件:
<link rel="stylesheet" href="font-awesome.min.css">
(3)下载 fontawesome-webfont.woff2到本地,在index.html文件的同级目录下新建文件夹fonts,将字体文件放入该文件夹。
(4)
npm install react-fontawesome --save
(5)在使用到图标的文件中添加font-awesome:
import FontAwesome from 'react-fontawesome';
(6)使用:
<SubMenu key={v.id} title={<span><FontAwesome name={v.icon} style={{paddingRight:"5px"}}/><span style={{fontSize:'16px'}}>{v.txt}</span></span>}> { v.child.map(v2 => { return <Menu.Item key={v2.sref} style={{fontSize:'13px'}}> <Icon type={v2.icon}/> <span>{v2.name}</span> </Menu.Item> }) } </SubMenu>