跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
HTML / CSSWeChat大前端

微信小程序离线引入 IconFont 字体图标的解决方案

微信小程序限制远程域名安全策略,导致无法直接通过在线链接引入阿里 IconFont。维护期间需采用本地 Base64 方案,将 TTF 字体转换为内联样式,替换原有 CSS 配置并补充全局字体声明,即可实现离线图标正常显示。该方法避免了依赖外部链接失效的风险,适合生产环境长期使用。

黑客发布于 2025/2/3更新于 2026/7/2435 浏览
微信小程序离线引入 IconFont 字体图标的解决方案

在微信小程序开发中,由于平台对线上资源的安全域名限制,我们无法像 Web 项目那样直接通过在线链接引入阿里的 IconFont 图标库。虽然阿里矢量图库近期恢复了部分功能,但为了防止后续维护导致链接失效,采用本地离线方案更为稳妥。

一、在线链接方式(参考)

如果暂时使用在线链接,需要注意每次新增图标后必须更新外部样式链接。操作时点击'下载至本地'获取字体包,打开自定义的 iconfont.css 文件,将其中选中的部分替换为最新的在线链接即可。随后在 app.wxss 中引入该 CSS 文件,最后在页面的 WXML 中使用 <text class="iconfont icon-xxx"></text> 调用图标。

二、离线 Base64 方案(推荐)

当无法获取在线链接或需要更稳定的方案时,我们需要将远程路径转换为 Base64 格式。这是因为小程序限制了接口安全域名,Base64 内联可以绕过这一限制。

1. 下载并转换字体

首先下载字体图标压缩包,解压后找到 .ttf 文件。推荐使用 Transfonter 工具进行格式转换:

  1. 打开转换网站,勾选 "Base64 encode" 选项,上传 TTF 文件。
  2. 点击 "Convert" 进行转换,完成后下载生成的压缩包。
  3. 解压后你会得到包含 stylesheet.css 的文件,复制其中的内容。
2. 替换样式配置

在项目中打开自定义的 iconfont.css 文件,将原有的 @font-face 和 .iconfont 代码段替换为刚才复制的内容。注意这里涉及两段关键代码的替换。

/* 示例:替换后的 @font-face 结构 */
@font-face {
  font-family: 'iconfont'; /* Project id 123456 */
  src: url('data:application/x-font-ttf;charset=utf-8;base64,AA...'); 
}
3. 补充全局字体声明

完成上述替换后,可能还无法正常使用,因为缺少全局字体声明。需要在 app.wxss 或全局样式文件中添加以下代码,确保所有类名包含 icon- 的元素都能正确识别字体:

[class^="icon-"], [class*=" icon-"] {
  font-family: 'iconfont' !important;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-: grayscale;
}
font-smoothing
4. 页面使用示例

配置完成后,即可在任意页面的 WXML 中正常渲染图标。下面是一个简单的列表展示示例,展示了如何结合业务数据与图标显示:

<view class="padding-20-0 m-t-100 bgc">
  <view wx:if="{{safetyEmps.length}}">
    <view wx:key="this" wx:for="{{safetyEmps}}" class="mrg-0-10 {{index !== 0 ? 'm-t-30' : ''}}">
      <view class="font30 fontB padding20 colorfff" style="background-color: {{index % 2 == 0 ? '#0062D9' : '#5C75F2'}};">
        {{item.ename}}
      </view>
      <view class="flex-wrap text-right space-around m-t-10">
        <view class="w50p padding20 bgc border-box position-r {{index % 2 == 0 ? 'item' : 'item2'}}">
          <view>今年计划投入<text class="font20">(万元)</text></view>
          <view class="fontB font36 m-l-15p m-t-10">{{fn.transInput(item.sumMoney)}}</view>
          <text class="iconfont icon-lvzhou_zongshu font70 theme-color posi-br"></text>
        </view>
        <view class="w50p padding20 bgc border-box position-r {{index % 2 == 0 ? 'item' : 'item2'}}">
          <view>今年实际支出<text class="font20">(万元)</text></view>
          <view class="fontB font36 m-l-15p m-t-10">{{fn.transInput(item.siOut)}}</view>
          <text class="iconfont icon-a-touruzhichu theme-color font70 posi-br"></text>
        </view>
      </view>
    </view>
  </view>
  <view class="text-center padding20 bgc" wx:else>
    请选择企业
  </view>
</view>

至此,离线引入方案已处理完毕。相比在线链接,这种方式不受第三方网站维护影响,更适合生产环境长期使用。

目录

  1. 一、在线链接方式(参考)
  2. 二、离线 Base64 方案(推荐)
  3. 1. 下载并转换字体
  4. 2. 替换样式配置
  5. 3. 补充全局字体声明
  6. 4. 页面使用示例
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • SCADA Engine:基于 Vue3 的开源工业级组态引擎
  • Android MVVM 架构实战:DataBinding 中 BindingAdapter 的使用与原理
  • 前端动画库对比:CSS、Framer Motion、GSAP 与 React Spring
  • 2026 年主流 AI 生成 PPT 工具横评:6 款实测与选择指南
  • Milvus 向量数据库:核心原理与 Python 实战
  • 前端异常捕获与统一格式化:从 console.log 到服务端上报
  • Ubuntu 国内镜像源更换指南:阿里/清华/中科大对比
  • 基于 LLama-Factory 打造个性化 AI 角色的微调实战
  • VSCode Copilot 配置文件提示“未知工具”警告排查与解决
  • Windows 环境下 faster-whisper 部署:CUDA 加速与 PyAV 依赖配置
  • 前端状态管理实战:Redux Toolkit、Zustand 与 Jotai 对比
  • 前端加密 encrypt-labs 靶场:环境搭建与关卡解析
  • Flutter 组件 Spry 适配鸿蒙 HarmonyOS 实战:轻量化端侧 Web 框架
  • IntelliJ IDEA 配置 AI 插件实现 Java 俄罗斯方块游戏开发
  • WebODM完全指南:零基础掌握开源无人机地图制作
  • Java ArrayList 底层原理与核心方法手写实现
  • 树莓派智能家居中控系统构建指南
  • Manacher(马拉车)算法详解:求解最长回文子串
  • 2026 年主流 AI Agent 框架横评:OpenClaw 及九大衍生产品对比与场景推荐
  • 基于 YOLO 与 LLM 的 Web 视觉分析系统(Django+Vue3)

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online