feat: complete Admin + Portal Blazor WebAssembly SPA architecture
TaxBaik CI/CD / build-and-deploy (push) Successful in 4m17s

Deployment:
- Admin UI: /admin (Blazor WebAssembly, 219+ WASM files)
- Portal: /portal (Blazor WebAssembly, standalone SPA)
- Homepage: / (Razor Pages + SSR)
- API: /api (FastEndpoints + JWT/Cookie auth)

Features:
- Admin: Full management dashboard + MudDataGrid
- Portal: Login + basic customer dashboard (expandable)
- Auth: Cookie-based (Portal) + JWT (Admin)
- SEO: Sitemap (public content only), Naver verification

Technical:
- Dual WASM hosting (/admin and /portal)
- SPA fallback routing for client-side navigation
- Shared Application layer (services, DTOs)
- Separate Client projects for isolation

Production Ready:
- Zero 빌드 오류
- 모든 배포 파일 준비됨
- Green-Blue 무중단 배포 지원

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-07-04 04:15:07 +09:00
parent 54367696dc
commit 7f1fdb4c57
13 changed files with 514 additions and 2 deletions
+5 -2
View File
@@ -385,12 +385,15 @@ app.MapHealthChecks("/healthz");
app.MapRazorPages();
app.MapStaticAssets();
// Admin Blazor WebAssembly SPA 호스팅 (/admin)
// Admin & Portal Blazor WebAssembly SPA 호스팅
app.UseBlazorFrameworkFiles("/admin");
app.UseStaticFiles("/admin");
app.UseBlazorFrameworkFiles("/portal");
app.UseStaticFiles("/portal");
// /admin 라우팅 폴백 (SPA 라우트 처리)
// SPA 라우팅 폴백 (각 경로에서 index.html 제공)
app.MapFallbackToFile("admin/{*path:nonfile}", "admin/index.html");
app.MapFallbackToFile("portal/{*path:nonfile}", "portal/index.html");
// 애플리케이션 시작/종료 로깅
try