update at 2026-02-09 16:09:44
This commit is contained in:
@@ -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 权限)
|
||||
|
||||
Reference in New Issue
Block a user