update at 2026-02-09 16:09:44

This commit is contained in:
douboer
2026-02-09 16:09:44 +08:00
parent ffb7367d3a
commit 917f210dae
20 changed files with 790 additions and 184 deletions

View File

@@ -8,8 +8,12 @@ set -e # 遇到错误立即退出
# ===== 配置区域 =====
SERVER="user@fonts.biboer.cn" # 请替换为你的 SSH 用户名
REMOTE_DIR="/home/gavin/font2svg"
LOCAL_FONTS_DIR="frontend/public/fonts"
LOCAL_FONTS_JSON="frontend/public/fonts.json"
REMOTE_MP_ASSETS_DIR="$REMOTE_DIR/miniprogram/assets"
LOCAL_FONTS_DIR="fonts"
LOCAL_WEB_FONTS_JSON="frontend/public/fonts.json"
LOCAL_WEB_DEFAULT_JSON="frontend/public/default.json"
LOCAL_MP_FONTS_JSON="miniprogram/assets/fonts.json"
LOCAL_MP_DEFAULT_JSON="miniprogram/assets/default.json"
# 颜色输出
RED='\033[0;31m'
@@ -38,8 +42,13 @@ check_files() {
exit 1
fi
if [ ! -f "$LOCAL_FONTS_JSON" ]; then
log_error "fonts.json 文件不存在: $LOCAL_FONTS_JSON"
if [ ! -f "$LOCAL_WEB_FONTS_JSON" ]; then
log_error "Web fonts.json 文件不存在: $LOCAL_WEB_FONTS_JSON"
exit 1
fi
if [ ! -f "$LOCAL_MP_FONTS_JSON" ]; then
log_error "小程序 fonts.json 文件不存在: $LOCAL_MP_FONTS_JSON"
exit 1
fi
@@ -49,7 +58,7 @@ check_files() {
create_remote_dirs() {
log_info "创建远程目录..."
ssh $SERVER "mkdir -p $REMOTE_DIR/fonts"
ssh $SERVER "mkdir -p $REMOTE_DIR/fonts $REMOTE_MP_ASSETS_DIR"
}
upload_fonts() {
@@ -65,34 +74,55 @@ upload_fonts() {
log_info "字体文件上传完成"
}
upload_fonts_json() {
log_info "上传 fonts.json..."
scp "$LOCAL_FONTS_JSON" "$SERVER:$REMOTE_DIR/"
log_info "fonts.json 上传完成"
upload_web_config() {
log_info "上传 Web 配置..."
scp "$LOCAL_WEB_FONTS_JSON" "$SERVER:$REMOTE_DIR/fonts.json"
if [ -f "$LOCAL_WEB_DEFAULT_JSON" ]; then
scp "$LOCAL_WEB_DEFAULT_JSON" "$SERVER:$REMOTE_DIR/default.json"
fi
log_info "Web 配置上传完成"
}
upload_miniprogram_config() {
log_info "上传小程序配置..."
scp "$LOCAL_MP_FONTS_JSON" "$SERVER:$REMOTE_MP_ASSETS_DIR/fonts.json"
if [ -f "$LOCAL_MP_DEFAULT_JSON" ]; then
scp "$LOCAL_MP_DEFAULT_JSON" "$SERVER:$REMOTE_MP_ASSETS_DIR/default.json"
else
log_warn "未找到小程序 default.json已跳过: $LOCAL_MP_DEFAULT_JSON"
fi
log_info "小程序配置上传完成"
}
set_permissions() {
log_info "设置文件权限..."
ssh $SERVER "chmod -R 755 $REMOTE_DIR"
ssh $SERVER "chmod -R 755 $REMOTE_DIR/fonts $REMOTE_MP_ASSETS_DIR"
log_info "权限设置完成"
}
verify_deployment() {
log_info "验证部署结果..."
# 检查 fonts.json
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" "https://fonts.biboer.cn/fonts.json")
# 检查小程序 fonts.json
MP_HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" "https://fonts.biboer.cn/miniprogram/assets/fonts.json")
if [ "$HTTP_CODE" = "200" ]; then
log_info "fonts.json 可访问 ✓"
if [ "$MP_HTTP_CODE" = "200" ]; then
log_info "小程序 fonts.json 可访问 ✓"
else
log_error "fonts.json 访问失败 (HTTP $HTTP_CODE)"
log_error "小程序 fonts.json 访问失败 (HTTP $MP_HTTP_CODE)"
log_warn "请检查 Cloudflare DNS 配置和 Nginx 配置"
exit 1
fi
WEB_HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" "https://fonts.biboer.cn/fonts.json")
if [ "$WEB_HTTP_CODE" = "200" ]; then
log_info "Web fonts.json 可访问 ✓"
else
log_warn "Web fonts.json 不可访问 (HTTP $WEB_HTTP_CODE)"
fi
# 检查 CORS 头
CORS_HEADER=$(curl -s -I "https://fonts.biboer.cn/fonts.json" | grep -i "access-control-allow-origin")
CORS_HEADER=$(curl -s -I "https://fonts.biboer.cn/miniprogram/assets/fonts.json" | grep -i "access-control-allow-origin")
if [ -n "$CORS_HEADER" ]; then
log_info "CORS 配置正确 ✓"
@@ -123,11 +153,12 @@ show_summary() {
echo ""
echo "2. 测试字体加载(在小程序开发者工具控制台):"
echo " wx.request({"
echo " url: 'https://fonts.biboer.cn/fonts.json',"
echo " url: 'https://fonts.biboer.cn/miniprogram/assets/fonts.json',"
echo " success: (res) => console.log(res.data)"
echo " })"
echo ""
echo "3. 验证 CDN 缓存状态:"
echo " curl -I https://fonts.biboer.cn/miniprogram/assets/fonts.json | grep cf-cache-status"
echo " curl -I https://fonts.biboer.cn/fonts.json | grep cf-cache-status"
echo ""
}
@@ -151,7 +182,8 @@ main() {
check_files
create_remote_dirs
upload_fonts
upload_fonts_json
upload_web_config
upload_miniprogram_config
set_permissions
# 可选:重启 Nginx需要 sudo 权限)