Compare commits
3 Commits
4728bb884b
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
339f73b6f5 | ||
|
|
7c5df3de95 | ||
|
|
b5b653f3c4 |
88
debug-vercel-html.cjs
Normal file
88
debug-vercel-html.cjs
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
const { chromium } = require("playwright");
|
||||||
|
|
||||||
|
async function debugVercelHTML() {
|
||||||
|
console.log("🔍 Vercel HTML 상세 분석 시작");
|
||||||
|
|
||||||
|
const browser = await chromium.launch({ headless: true });
|
||||||
|
const page = await browser.newPage();
|
||||||
|
|
||||||
|
try {
|
||||||
|
await page.goto("https://zellyy-finance.vercel.app/", {
|
||||||
|
waitUntil: "networkidle",
|
||||||
|
timeout: 30000,
|
||||||
|
});
|
||||||
|
|
||||||
|
// HTML 전체 내용 출력
|
||||||
|
const htmlContent = await page.content();
|
||||||
|
console.log("📄 HTML 전체 내용:");
|
||||||
|
console.log("=".repeat(80));
|
||||||
|
console.log(htmlContent);
|
||||||
|
console.log("=".repeat(80));
|
||||||
|
|
||||||
|
// head 태그 내용 확인
|
||||||
|
const headContent = await page.locator("head").innerHTML();
|
||||||
|
console.log("\n📍 HEAD 태그 내용:");
|
||||||
|
console.log(headContent);
|
||||||
|
|
||||||
|
// body 태그 내용 확인
|
||||||
|
const bodyContent = await page.locator("body").innerHTML();
|
||||||
|
console.log("\n📍 BODY 태그 내용:");
|
||||||
|
console.log(bodyContent);
|
||||||
|
|
||||||
|
// JavaScript 에러 확인
|
||||||
|
const jsErrors = [];
|
||||||
|
page.on("pageerror", (error) => {
|
||||||
|
jsErrors.push(error.message);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 페이지 새로고침하여 에러 캡처
|
||||||
|
await page.reload({ waitUntil: "networkidle" });
|
||||||
|
|
||||||
|
console.log("\n🚨 JavaScript 에러들:");
|
||||||
|
if (jsErrors.length === 0) {
|
||||||
|
console.log("에러 없음");
|
||||||
|
} else {
|
||||||
|
jsErrors.forEach((error, index) => {
|
||||||
|
console.log(`${index + 1}. ${error}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 네트워크 요청 확인
|
||||||
|
const failedRequests = [];
|
||||||
|
page.on("requestfailed", (request) => {
|
||||||
|
failedRequests.push(
|
||||||
|
`${request.method()} ${request.url()} - ${request.failure()?.errorText}`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
await page.reload({ waitUntil: "networkidle" });
|
||||||
|
|
||||||
|
console.log("\n🌐 실패한 네트워크 요청들:");
|
||||||
|
if (failedRequests.length === 0) {
|
||||||
|
console.log("실패한 요청 없음");
|
||||||
|
} else {
|
||||||
|
failedRequests.forEach((request, index) => {
|
||||||
|
console.log(`${index + 1}. ${request}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// DOM 상태 확인
|
||||||
|
const rootElement = await page.locator("#root").count();
|
||||||
|
console.log(
|
||||||
|
`\n🎯 #root 요소 존재: ${rootElement > 0 ? "✅ 있음" : "❌ 없음"}`
|
||||||
|
);
|
||||||
|
|
||||||
|
if (rootElement > 0) {
|
||||||
|
const rootHTML = await page.locator("#root").innerHTML();
|
||||||
|
console.log("📍 #root 내용:");
|
||||||
|
console.log(rootHTML);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error("❌ 디버깅 중 오류:", error.message);
|
||||||
|
} finally {
|
||||||
|
await browser.close();
|
||||||
|
console.log("🏁 디버깅 완료");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
debugVercelHTML().catch(console.error);
|
||||||
@@ -13,7 +13,7 @@ const BasicApp: React.FC = () => {
|
|||||||
minHeight: "100vh",
|
minHeight: "100vh",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<h1 style={{ color: "#333" }}>✅ Zellyy Finance - 기본 테스트</h1>
|
<h1 style={{ color: "#333" }}>✅ Zellyy Finance - 기본 테스트 (v2)</h1>
|
||||||
<p style={{ fontSize: "18px", color: "#666" }}>
|
<p style={{ fontSize: "18px", color: "#666" }}>
|
||||||
이 페이지가 보인다면 React 앱이 정상적으로 작동하고 있습니다.
|
이 페이지가 보인다면 React 앱이 정상적으로 작동하고 있습니다.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -106,5 +106,7 @@ export const authLogger = createDomainLogger("AUTH");
|
|||||||
export const networkLogger = createDomainLogger("NETWORK");
|
export const networkLogger = createDomainLogger("NETWORK");
|
||||||
export const storageLogger = createDomainLogger("STORAGE");
|
export const storageLogger = createDomainLogger("STORAGE");
|
||||||
export const supabaseLogger = createDomainLogger("SUPABASE");
|
export const supabaseLogger = createDomainLogger("SUPABASE");
|
||||||
|
// 임시: Vercel 배포 에러 방지를 위한 appwriteLogger (더 이상 사용하지 않음)
|
||||||
|
export const appwriteLogger = createDomainLogger("APPWRITE_DEPRECATED");
|
||||||
|
|
||||||
export default logger;
|
export default logger;
|
||||||
|
|||||||
Reference in New Issue
Block a user