fix(deploy): restart.sh admin 挂载项目根;增加 verify-admin-dist 防白屏
Made-with: Cursor
This commit is contained in:
38
scripts/verify-admin-dist.sh
Normal file
38
scripts/verify-admin-dist.sh
Normal file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
# Verify admin dist: chunks referenced in index.html must exist under deploy/admin/dist and be large enough
|
||||
# (avoids nginx serving index.html for missing assets -> white screen, tiny JS/CSS in Network tab)
|
||||
set -e
|
||||
ROOT="${1:?usage: $0 <project-root>}"
|
||||
D="$ROOT/deploy/admin/dist"
|
||||
H="$D/index.html"
|
||||
if [ ! -f "$H" ]; then
|
||||
echo "verify-admin-dist: missing $H" >&2
|
||||
exit 1
|
||||
fi
|
||||
if ! grep -qE '/admin/assets/[^"'\''<> ]+\.js' "$H"; then
|
||||
echo "verify-admin-dist: no /admin/assets/*.js in index.html (check admin/vite.config.js base: /admin/)" >&2
|
||||
exit 1
|
||||
fi
|
||||
TMP="$(mktemp)"
|
||||
grep -oE '/admin/assets/[^"'\''<> ]+' "$H" | sort -u >"$TMP"
|
||||
while IFS= read -r path; do
|
||||
[ -n "$path" ] || continue
|
||||
rel="${path#/admin}"
|
||||
f="$D$rel"
|
||||
if [ ! -f "$f" ]; then
|
||||
echo "verify-admin-dist: referenced but missing on disk: $path -> $f" >&2
|
||||
echo " Deploy full deploy/admin/dist, not index.html alone." >&2
|
||||
rm -f "$TMP"
|
||||
exit 1
|
||||
fi
|
||||
sz=$(wc -c <"$f" 2>/dev/null | tr -d ' \r\n' || echo 0)
|
||||
if [ "${sz:-0}" -lt 800 ]; then
|
||||
echo "verify-admin-dist: file too small (${sz} bytes), likely wrong content: $f" >&2
|
||||
echo " Admin build must mount repo root (see pull-and-restart.sh / restart.sh docker -v ROOT:/repo)." >&2
|
||||
rm -f "$TMP"
|
||||
exit 1
|
||||
fi
|
||||
done <"$TMP"
|
||||
rm -f "$TMP"
|
||||
|
||||
echo "verify-admin-dist: OK ($D)"
|
||||
Reference in New Issue
Block a user