diff --git a/TaxBaik.Web/Components/Admin/App.razor b/TaxBaik.Web/Components/Admin/App.razor index cd8ce64..2c1706d 100644 --- a/TaxBaik.Web/Components/Admin/App.razor +++ b/TaxBaik.Web/Components/Admin/App.razor @@ -20,7 +20,7 @@ window.location.pathname.toLowerCase().endsWith('/admin/login')); - +
@@ -37,7 +37,7 @@
- + diff --git a/TaxBaik.Web/Components/Admin/Pages/Login.razor b/TaxBaik.Web/Components/Admin/Pages/Login.razor index c04af83..3c7a02d 100644 --- a/TaxBaik.Web/Components/Admin/Pages/Login.razor +++ b/TaxBaik.Web/Components/Admin/Pages/Login.razor @@ -1,6 +1,6 @@ @page "/admin/login" @layout TaxBaik.Web.Components.Admin.Layout.BlankLayout @attribute [AllowAnonymous] -@rendermode @(new InteractiveServerRenderMode(prerender: true)) +@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true)) 로그인 diff --git a/TaxBaik.Web/Program.cs b/TaxBaik.Web/Program.cs index 7330d89..d533011 100644 --- a/TaxBaik.Web/Program.cs +++ b/TaxBaik.Web/Program.cs @@ -71,10 +71,10 @@ builder.Services.AddRateLimiter(options => }); }); -// Razor Pages + Blazor Server 통합 +// Razor Pages + Blazor WebAssembly 통합 builder.Services.AddRazorPages(); builder.Services.AddRazorComponents() - .AddInteractiveServerComponents(); + .AddInteractiveWebAssemblyComponents(); builder.Services.Configure(options => { options.DetailedErrors = true; @@ -389,7 +389,8 @@ app.MapStaticAssets(); // AllowAnonymous: JWT 미들웨어가 Blazor 셸 요청을 401로 차단하지 않도록 한다. // 인증은 Blazor AuthorizeRouteView → RedirectToLogin 에서 처리한다. app.MapRazorComponents() - .AddInteractiveServerRenderMode() + .AddInteractiveWebAssemblyRenderMode() + .AddAdditionalAssemblies(typeof(TaxBaik.WasmClient._Imports).Assembly) .AllowAnonymous(); // 애플리케이션 시작/종료 로깅 diff --git a/scripts/validate_admin_render.sh b/scripts/validate_admin_render.sh index dcfee91..489ae2f 100644 --- a/scripts/validate_admin_render.sh +++ b/scripts/validate_admin_render.sh @@ -11,18 +11,18 @@ for file in "$app_file" "$login_file"; do fi done -if ! grep -nE "InteractiveServerRenderMode\\(prerender: true\\)" "$app_file" >/dev/null; then - echo "Admin shell must use InteractiveServerRenderMode(prerender: true)." >&2 +if ! grep -nE "InteractiveWebAssemblyRenderMode\\(prerender: true\\)" "$app_file" >/dev/null; then + echo "Admin shell must use InteractiveWebAssemblyRenderMode(prerender: true)." >&2 exit 1 fi -if grep -nE "InteractiveWebAssemblyRenderMode|prerender: true" "$app_file" | grep -v "InteractiveServerRenderMode(prerender: true)" >/dev/null; then +if grep -nE "InteractiveServerRenderMode|prerender: true" "$app_file" | grep -v "InteractiveWebAssemblyRenderMode(prerender: true)" >/dev/null; then echo "Admin shell render mode violation detected." >&2 exit 1 fi -if ! grep -nE "InteractiveServerRenderMode\\(prerender: true\\)" "$login_file" >/dev/null; then - echo "Login page must allow server prerender." >&2 +if ! grep -nE "InteractiveWebAssemblyRenderMode\\(prerender: true\\)" "$login_file" >/dev/null; then + echo "Login page must use InteractiveWebAssemblyRenderMode(prerender: true)." >&2 exit 1 fi