From 6fa5e4bf323f00fc56a627a005417c4d63a3be30 Mon Sep 17 00:00:00 2001 From: zhangxiang Date: Tue, 18 Aug 2026 12:56:19 +0800 Subject: [PATCH] fix(deploy): sync public assets into standalone dist root Next.js standalone output does not place public/ files at the dist root, so rsync --delete was removing logo/favicon/fonts/images from production. Copy public/ into dist after build so Nginx can serve them. --- scripts/deploy.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 92f453a..eb937c7 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -136,6 +136,14 @@ cmd_build() { log "❌ 构建失败:$DIST_DIR 目录不存在" exit 1 fi + + # standalone 构建不会把 public/ 输出到 dist 根目录; + # Nginx 以 dist 作为站点根目录,因此手动同步 public 静态资源(logo、favicon、fonts、images 等) + if [[ -d "$PROJECT_ROOT/public" ]]; then + cp -R "$PROJECT_ROOT/public/." "$DIST_DIR/" + log "✅ public 静态资源已同步到 $DIST_DIR" + fi + log "✅ 构建完成,产物大小: $(du -sh "$DIST_DIR" | cut -f1)" }