Nextjs SSR使用Iconfont彩色图标

231 阅读1分钟

最近在把一个老React项目改造为Nextjs,充分利用SSR优化SEO。改造过程中碰到原来引用的Iconfont图标报错:Switched to client rendering because the server rendering errored: window is not defined. image.png

原来是之前引入的iconfont.js中的window不支持服务端渲染。一阵捣鼓后终于解决了。Iconfont提供三种icon使用方式,我这里通过Font class的方式使用,既能通过className指定图标,也能保证图标的彩色。具体步骤如下。

第一步:项目设置中的字体格式勾选彩色

image2.png

image.png

第二步:将相关文件下载至本地

image4.png

第三步:将文件复制到自己的项目

复制以下四个文件即可,其他都不需要

image5.png

第四步:在代码中使用icon

import "../iconfont/iconfont.css";  //引入css文件
<span className="icon iconfont icon-qiandai"></span> //通过className指定图标

最后打个小广告,这个问题是我捣鼓副业的时候碰到的,是一个远程工作聚合网站,想要找远程工作的小伙伴可以进来瞅一眼:轻松游牧