diff --git a/src/TaxBaik.Web/Program.cs b/src/TaxBaik.Web/Program.cs index e866418..6e02a2a 100644 --- a/src/TaxBaik.Web/Program.cs +++ b/src/TaxBaik.Web/Program.cs @@ -364,13 +364,18 @@ catch (Exception ex) app.UsePathBase("/taxbaik"); app.UseResponseCompression(); + +// WASM 프레임워크 파일 (정적 파일 전에) +app.UseBlazorFrameworkFiles("/admin"); +app.UseBlazorFrameworkFiles("/portal"); + +// 정적 파일 제공 (정적 경로별) app.UseStaticFiles(); +app.UseStaticFiles("/admin"); +app.UseStaticFiles("/portal"); + app.UseSession(); // TempData 쿠키 저장소 app.UseRouting(); -app.UseRateLimiter(); -app.UseAuthentication(); -app.UseAuthorization(); -app.UseAntiforgery(); if (!app.Environment.IsDevelopment()) { @@ -378,20 +383,19 @@ if (!app.Environment.IsDevelopment()) app.UseHsts(); } -// Admin & Portal Blazor WebAssembly SPA 호스팅 (미들웨어 먼저!) -app.UseBlazorFrameworkFiles("/admin"); -app.UseStaticFiles("/admin"); -app.UseBlazorFrameworkFiles("/portal"); -app.UseStaticFiles("/portal"); +app.UseRateLimiter(); +app.UseAuthentication(); +app.UseAuthorization(); +app.UseAntiforgery(); -// API + Razor Pages + 정적 파일 매핑 (라우팅은 나중에) +// API + Razor Pages + 정적 자산 매핑 app.MapControllers(); app.MapFastEndpoints(); app.MapHealthChecks("/healthz"); -app.MapRazorPages(); // Sitemap.cshtml이 여기서 먼저 매치됨! +app.MapRazorPages(); // Sitemap.cshtml, Rss.cshtml, Feed.cshtml app.MapStaticAssets(); -// SPA 라우팅 폴백 (각 경로에서 index.html 제공) - 가장 마지막에! +// SPA 라우팅 폴백 (가장 마지막에!) app.MapFallbackToFile("admin/{*path:nonfile}", "admin/index.html"); app.MapFallbackToFile("portal/{*path:nonfile}", "portal/index.html");