diff --git a/src/TaxBaik.Web/Pages/Rss.cshtml.cs b/src/TaxBaik.Web/Pages/Rss.cshtml.cs
index 9c8b3d3..2acdbd3 100644
--- a/src/TaxBaik.Web/Pages/Rss.cshtml.cs
+++ b/src/TaxBaik.Web/Pages/Rss.cshtml.cs
@@ -18,9 +18,18 @@ public class RssModel : PageModel
public async Task OnGetAsync()
{
- // 최근 50개 블로그 포스트 (RSS는 일반적으로 최신 기사만 포함)
- var (posts, _) = await _blogService.GetPublishedPagedAsync(1, 50, categoryId: null, ct: default);
- Posts = posts.OrderByDescending(p => p.PublishedAt).ToList();
+ try
+ {
+ // 최근 50개 블로그 포스트 (RSS는 일반적으로 최신 기사만 포함)
+ var (posts, _) = await _blogService.GetPublishedPagedAsync(1, 50, categoryId: null, ct: default);
+ Posts = posts.OrderByDescending(p => p.PublishedAt).ToList();
+ }
+ catch (Exception ex)
+ {
+ // DB 연결 실패: 빈 포스트 목록 반환 (정적 피드 구조는 유지)
+ Posts = [];
+ System.Diagnostics.Debug.WriteLine($"RSS Feed: Blog posts load failed: {ex.Message}");
+ }
LastBuildDate = Posts.FirstOrDefault()?.PublishedAt?.ToString("R") ?? DateTime.UtcNow.ToString("R");
}
diff --git a/src/TaxBaik.Web/Pages/Sitemap.cshtml.cs b/src/TaxBaik.Web/Pages/Sitemap.cshtml.cs
index 2fef844..4b6a6d4 100644
--- a/src/TaxBaik.Web/Pages/Sitemap.cshtml.cs
+++ b/src/TaxBaik.Web/Pages/Sitemap.cshtml.cs
@@ -18,7 +18,7 @@ public class SitemapModel : PageModel
{
var baseUrl = "https://www.taxbaik.com/taxbaik";
- // 정적 페이지
+ // 정적 페이지 (항상 포함)
Urls.AddRange(new[]
{
$"{baseUrl}",
@@ -33,11 +33,20 @@ public class SitemapModel : PageModel
$"{baseUrl}/inquiry"
});
- // 동적 블로그 포스트
- var (posts, _) = await _blogService.GetPublishedPagedAsync(1, 1000, categoryId: null, ct: default);
- foreach (var post in posts)
+ // 동적 블로그 포스트 (DB 오류 처리)
+ try
{
- Urls.Add($"{baseUrl}/blog/{post.Slug}");
+ var (posts, _) = await _blogService.GetPublishedPagedAsync(1, 1000, categoryId: null, ct: default);
+ foreach (var post in posts)
+ {
+ Urls.Add($"{baseUrl}/blog/{post.Slug}");
+ }
+ }
+ catch (Exception ex)
+ {
+ // DB 연결 실패 등의 경우, 정적 페이지만으로도 sitemap 제공
+ // 프로덕션에서는 DB가 있으므로 이 경로는 사용되지 않음
+ System.Diagnostics.Debug.WriteLine($"Sitemap: Blog posts load failed: {ex.Message}");
}
}
}
diff --git a/src/TaxBaik.Web/Program.cs b/src/TaxBaik.Web/Program.cs
index 6e02a2a..2fde560 100644
--- a/src/TaxBaik.Web/Program.cs
+++ b/src/TaxBaik.Web/Program.cs
@@ -395,6 +395,9 @@ app.MapHealthChecks("/healthz");
app.MapRazorPages(); // Sitemap.cshtml, Rss.cshtml, Feed.cshtml
app.MapStaticAssets();
+// 루트 경로 기본값
+app.MapGet("/", () => Results.Redirect("/taxbaik/"));
+
// SPA 라우팅 폴백 (가장 마지막에!)
app.MapFallbackToFile("admin/{*path:nonfile}", "admin/index.html");
app.MapFallbackToFile("portal/{*path:nonfile}", "portal/index.html");