34 lines
1.4 KiB
Bash
34 lines
1.4 KiB
Bash
set -u
|
|
CP=/opt/docker/infra/Caddyfile
|
|
echo "===== before: line 70 ====="
|
|
sed -n '70p' "$CP"
|
|
echo "===== apply wildcard matcher (inode will change; restart re-binds) ====="
|
|
sed -i 's#handle_path /userbase/ {#handle_path /userbase* {#' "$CP"
|
|
echo "after:"; sed -n '70p' "$CP"
|
|
echo
|
|
echo "===== restart caddy to re-bind edited file ====="
|
|
docker restart caddy
|
|
echo "restart exit: $?"
|
|
sleep 6
|
|
echo "===== container sees fix? ====="
|
|
docker exec caddy grep -n "handle_path /userbase" /etc/caddy/Caddyfile
|
|
echo
|
|
echo "===== extract a real JS asset from SPA and test it ====="
|
|
html=$(curl -s -H "Host: www.yunhaixingtong.com" http://127.0.0.1/userbase/)
|
|
echo "$html" | grep -oE 'src="[^"]+\.js"' | head -3
|
|
asset=$(echo "$html" | grep -oE '/[A-Za-z0-9_./-]+\.js' | head -1)
|
|
echo "first asset path: $asset"
|
|
if [ -n "$asset" ]; then
|
|
code=$(curl -s -o /dev/null -w "%{http_code}" -H "Host: www.yunhaixingtong.com" "http://127.0.0.1/userbase${asset}")
|
|
echo "/userbase${asset} -> $code"
|
|
fi
|
|
echo
|
|
echo "===== route tests ====="
|
|
for p in /userbase/ /userbase/index.html "/userbase${asset:-/static/js/}"; do
|
|
code=$(curl -s -o /tmp/b -w "%{http_code}" -H "Host: www.yunhaixingtong.com" "http://127.0.0.1$p")
|
|
echo "$p -> $code | $(head -c 70 /tmp/b|tr -d '\n')"
|
|
done
|
|
echo
|
|
echo "===== backend test ====="
|
|
curl -s -o /dev/null -w "/userbase/api/x -> %{http_code}\n" -H "Host: www.yunhaixingtong.com" http://127.0.0.1/userbase/api/x
|