# CDN 图标部署指南 ## 📦 部署流程 ### 1. 部署图标到服务器 ```bash cd /Users/gavin/font2svg ./scripts/deploy-assets.sh ``` 部署脚本会自动: - 上传所有 SVG 图标到 `fonts.biboer.cn/assets/icons/` - 上传 PNG logo 到 `fonts.biboer.cn/assets/` - 设置正确的文件权限 - 验证部署结果 ### 2. 验证部署 部署完成后,可以通过浏览器访问以下地址验证: ``` https://fonts.biboer.cn/assets/webicon.png https://fonts.biboer.cn/assets/icons/export.svg https://fonts.biboer.cn/assets/icons/font-icon.svg ``` ### 3. 测试小程序 在微信开发者工具中: 1. 点击「详情」- 「本地设置」 2. ✅ 勾选「不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书」(开发阶段) 3. 点击「编译」重新加载页面 4. 检查图标是否正常显示 ### 4. 配置服务器域名(生产环境) 在微信小程序后台配置: 1. 登录 [微信公众平台](https://mp.weixin.qq.com/) 2. 开发管理 → 开发设置 → 服务器域名 3. 将 `https://fonts.biboer.cn` 添加到: - **request 合法域名** - **downloadFile 合法域名** 4. 保存配置,等待生效(可能需要几分钟) ## 🎯 优势对比 ### 使用 CDN 方案 ✅ **小程序包体积减小** - 图标不占用包大小 ✅ **SVG 高清显示** - 网络地址支持 SVG 格式 ✅ **便于更新维护** - 更新图标无需重新发布小程序 ✅ **统一资源管理** - 字体和图标同一个 CDN ### 本地资源方案 ❌ 占用包大小(约 50KB 图标) ❌ 需要使用 PNG 格式(SVG 不支持本地) ❌ 更新需要重新发布 ✅ 离线可用 ## 📝 配置文件说明 ### `/miniprogram/config/cdn.js` 统一管理所有 CDN 资源路径: ```javascript const ICON_PATHS = { logo: 'https://fonts.biboer.cn/assets/webicon.png', fontSizeDecrease: 'https://fonts.biboer.cn/assets/icons/font-size-decrease.svg', // ... 其他图标 } ``` ### `/miniprogram/pages/index/index.js` 引入配置并添加到 data: ```javascript const { ICON_PATHS } = require('../../config/cdn') Page({ data: { icons: ICON_PATHS, // ... } }) ``` ### `/miniprogram/pages/index/index.wxml` 使用数据绑定引用图标: ```xml ``` ## 🔄 更新图标流程 1. 修改本地 `assets/icons/` 中的 SVG 文件 2. 运行部署脚本:`./scripts/deploy-assets.sh` 3. 小程序无需重新发布,刷新即可看到新图标 ## 🚨 注意事项 1. **HTTPS 要求**:小程序只能加载 HTTPS 资源 2. **域名配置**:生产环境必须在小程序后台配置合法域名 3. **缓存策略**:CDN 资源可能有缓存,更新后清除浏览器缓存 4. **文件大小**:建议 SVG 图标控制在 10KB 以内,确保快速加载 5. **兼容性**:保留本地 PNG 作为备用方案(可选) ## 📊 性能对比 | 项目 | 本地 PNG | CDN SVG | |------|---------|---------| | 包大小影响 | +50KB | 0KB | | 首次加载 | 立即显示 | ~100ms(网络) | | 图标清晰度 | 一般 | 高清 | | 更新成本 | 重新发布 | 无需发布 | ## 🛠️ 故障排查 ### 图标不显示 1. 检查网络请求:开发者工具 → Network 2. 验证 CDN 地址:浏览器直接访问 3. 检查域名配置:后台是否添加合法域名 4. 清除缓存:微信开发者工具「清除缓存」 ### 部署失败 1. 检查 SSH 连接:`ssh gavin@fonts.biboer.cn` 2. 检查目录权限:服务器上 `/home/gavin/font2svg/assets/` 3. 检查本地文件:`assets/icons/` 是否存在 ## 📦 服务器目录结构 ``` /home/gavin/font2svg/ ├── assets/ │ ├── webicon.png # 小程序 logo │ └── icons/ │ ├── export.svg │ ├── export-svg.svg │ ├── export-png.svg │ ├── font-icon.svg │ ├── expand.svg │ ├── font-size-decrease.svg │ ├── font-size-increase.svg │ ├── choose-color.svg │ ├── selectall.svg │ ├── unselectall.svg │ └── checkbox.svg ├── fonts/ # 字体文件 └── fonts.json # 字体列表 ```