fix(analytics): 系统性修复 Google Analytics 数据采集问题
- 修复城市 (not set): 移除 allow_google_signals: false,启用 Google 信号补充地理数据
- 修复 Consent Mode v2: 补充 ad_user_data / ad_personalization 参数
- 修复 wait_for_update 与横幅延迟不匹配: 500ms → 3000ms
- 修复 static export 兼容性: GA 初始化脚本从 client component 移至 layout.tsx head 原生 script 标签
- 修复 pageview 追踪: GA3 风格 gtag('config') → GA4 风格 gtag('event', 'page_view')
- 修复 CookieConsent: 横幅延迟 2000ms → 500ms,同意后补发 pageview
- 修复 PerformanceTracker: FID → INP (Core Web Vitals 2024 更新)
- 修复环境变量命名: NEXT_PUBLIC_GA_ID → NEXT_PUBLIC_GA_MEASUREMENT_ID
- 清理 deploy-dist.sh 冗余 server/app 分支逻辑
- 新增部署产物 GA 脚本嵌入验证
This commit is contained in:
+15
-11
@@ -51,6 +51,20 @@ fi
|
||||
DIST_SIZE=$(du -sh "$DIST_DIR" | cut -f1)
|
||||
echo "✅ dist 目录大小: $DIST_SIZE"
|
||||
|
||||
echo ""
|
||||
echo "📋 步骤1.1: 验证构建产物..."
|
||||
if [ -f "$DIST_DIR/index.html" ]; then
|
||||
if grep -q "googletagmanager.com" "$DIST_DIR/index.html"; then
|
||||
GA_ID=$(grep -oP 'id=G-[A-Z0-9]+' "$DIST_DIR/index.html" | head -1 | sed 's/id=//')
|
||||
echo "✅ GA 脚本已嵌入: $GA_ID"
|
||||
else
|
||||
echo "⚠️ 未检测到 GA 脚本,请检查 .env.production 中的 NEXT_PUBLIC_GA_MEASUREMENT_ID"
|
||||
fi
|
||||
else
|
||||
echo "❌ index.html 不存在,构建可能失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "📋 步骤2: 验证SSH连接..."
|
||||
if ! ssh -o ConnectTimeout=5 "$SERVER_USER@$SERVER_IP" exit; then
|
||||
@@ -79,17 +93,7 @@ echo ""
|
||||
echo "📋 步骤4: 上传 dist 目录..."
|
||||
ssh "$SERVER_USER@$SERVER_IP" "mkdir -p '$DEPLOY_ROOT/$STATIC_DIR'"
|
||||
|
||||
# 检查dist目录结构并正确处理Next.js静态文件
|
||||
if [ -d "$DIST_DIR/server/app" ]; then
|
||||
echo "🔧 检测到Next.js静态导出结构,正在处理HTML文件..."
|
||||
# 复制HTML文件到根目录
|
||||
rsync -avz --delete "$DIST_DIR/server/app/" "$SERVER_USER@$SERVER_IP:$DEPLOY_ROOT/$STATIC_DIR/"
|
||||
# 复制其他静态资源
|
||||
rsync -avz --delete --exclude='server/app' "$DIST_DIR/" "$SERVER_USER@$SERVER_IP:$DEPLOY_ROOT/$STATIC_DIR/"
|
||||
else
|
||||
# 标准静态文件结构
|
||||
rsync -avz --delete "$DIST_DIR/" "$SERVER_USER@$SERVER_IP:$DEPLOY_ROOT/$STATIC_DIR/"
|
||||
fi
|
||||
rsync -avz --delete "$DIST_DIR/" "$SERVER_USER@$SERVER_IP:$DEPLOY_ROOT/$STATIC_DIR/"
|
||||
|
||||
echo "✅ dist 目录已上传"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user