将 FontAwesome 部署到自有服务器/CDN,完全掌控加载速度与可用性
这是最灵活的方式,适合有构建流程的项目:
npm 安装并复制文件到静态资源目录
# ├── webfonts/
# │ ├── fa-solid-900.woff2
# │ ├── fa-regular-400.woff2
# │ ├── fa-brands-400.woff2有构建流程项目的最推荐方式
无需 npm/pnpm,直接下载官方发布的 ZIP 包:
下载官方发布 ZIP 压缩包
wget https://github.com/FortAwesome/Font-Awesome/archive/refs/tags/6.7.2.zip
unzip 6.7.2.zip
# 安装后文件位于 node_modules/@fortawesome/fontawesome-free/
# 将 css/、webfonts/、js/ 三个目录复制到项目的静态资源目录(如 /static/lib/fa/)。
cp -r Font-Awesome-6.7.2/css /your-project/static/fa/
cp -r Font-Awesome-6.7.2/webfonts /your-project/static/fa/适合中国大陆用户的最优方案——将文件上传到对象存储并绑定 CDN:
上传到阿里云/腾讯云 OSS推荐配置:
自托管时,Nginx 配置对性能至关重要:
# /etc/nginx/sites-available/fontawesome
server {
listen 443 ssl;
server_name fa.yourdomain.com;
root /var/www/fontawesome;
index index.html;
# 字体文件:一年缓存 + 不可变
location ~* \.(woff2?|ttf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
add_header Access-Control-Allow-Origin "*";
}
# CSS/JS 文件:一年缓存
location ~* \.(css|js)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
# SVG 文件:一周缓存
location ~* \.svg$ {
expires 1w;
add_header Cache-Control "public";
}
# 启用 Brotli 压缩(需安装 brotli 模块)
brotli on;
brotli_types font/woff2 font/ttf text/css application/javascript;
}| 维度 | 公共 CDN(cdnjs/jsDelivr) | 自托管 |
|---|---|---|
| 部署难度 | 极简(一行代码) | 需要服务器配置 |
| 大陆访问速度 | 中等(依赖 CDN 国内节点) | 可控(OSS + CDN) |
| 可靠性 | 依赖第三方 SLA | 完全可控 |
| 缓存策略 | 不可控 | 完全自定义 |
| 版本管理 | 自动获取最新 | 需手动更新 |
| 成本 | 免费 | OSS 存储费 + CDN 流量费(通常极低) |
| HTTPS | HTTPS | 需配置证书 |
使用软链管理版本
ln -s /var/www/fontawesome/6.7.2 /var/www/fontawesome/latest
使用软链管理版本(避免修改 HTML 引用)
HTML 中永远引用 /fa/latest/css/all.min.css,升级时只需更新软链指向