최종 경로 최적화: Program.cs 및 HTTP 클라이언트 경로 수정
## 변경사항 - Program.cs (WASM Client): apiBaseUrl /taxbaik/api/ → /api/ - ClientLogs.razor: HTTP 요청 경로 /taxbaik/api/ → /api/ - Services/TokenRefreshHandler: /taxbaik/api/auth/refresh → /api/auth/refresh - AdminShell/AdminSidebar: 공개 사이트 링크 /taxbaik → / ## 최종 E2E 테스트 결과 ✅ 공개 페이지: 5/5 통과 ❌ 관리자 페이지: WASM 부팅 오류 (5/5 실패) ## 경로 최적화 완료 항목 ✅ PathBase 제거 ✅ Blazor 상대 경로 변경 ✅ Razor Pages 상대 경로 변경 ✅ API 클라이언트 경로 수정 ✅ HTTP 요청 경로 수정 ✅ 네비게이션 링크 수정 ## 남은 문제 ❌ WASM 부팅 단계에서 예외 발생 (원인: 브라우저 콘솔 확인 필요) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -130,10 +130,10 @@
|
||||
|
||||
try
|
||||
{
|
||||
_summary = await Http.GetFromJsonAsync<ClientLogSummaryDto>("/taxbaik/api/client-logs/summary");
|
||||
var url = $"/taxbaik/api/client-logs/recent?q={Uri.EscapeDataString(_query ?? string.Empty)}&level={Uri.EscapeDataString(_level ?? string.Empty)}&source={Uri.EscapeDataString(_source ?? string.Empty)}&route={Uri.EscapeDataString(_route ?? string.Empty)}&start={Uri.EscapeDataString(_start ?? string.Empty)}&end={Uri.EscapeDataString(_end ?? string.Empty)}";
|
||||
_summary = await Http.GetFromJsonAsync<ClientLogSummaryDto>("/api/client-logs/summary");
|
||||
var url = $"/api/client-logs/recent?q={Uri.EscapeDataString(_query ?? string.Empty)}&level={Uri.EscapeDataString(_level ?? string.Empty)}&source={Uri.EscapeDataString(_source ?? string.Empty)}&route={Uri.EscapeDataString(_route ?? string.Empty)}&start={Uri.EscapeDataString(_start ?? string.Empty)}&end={Uri.EscapeDataString(_end ?? string.Empty)}";
|
||||
var result = await Http.GetFromJsonAsync<List<ClientLogDto>>(url);
|
||||
var grouped = await Http.GetFromJsonAsync<List<ClientLogGroupDto>>("/taxbaik/api/client-logs/groups");
|
||||
var grouped = await Http.GetFromJsonAsync<List<ClientLogGroupDto>>("/api/client-logs/groups");
|
||||
if (result is not null)
|
||||
{
|
||||
_entries.AddRange(result);
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<div class="admin-brand-subtitle">세무회계 관리 대시보드</div>
|
||||
</div>
|
||||
<div class="admin-topbar-actions">
|
||||
<a class="admin-topbar-action" href="/taxbaik" target="_blank" rel="noopener">공개 사이트</a>
|
||||
<a class="admin-topbar-action" href="/" target="_blank" rel="noopener">공개 사이트</a>
|
||||
<a class="admin-topbar-action" href="./logout">로그아웃</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
</nav>
|
||||
|
||||
<div class="admin-drawer-footer">
|
||||
<a class="admin-footer-item" href="/taxbaik" target="_blank" rel="noopener">공개 사이트</a>
|
||||
<a class="admin-footer-item" href="/" target="_blank" rel="noopener">공개 사이트</a>
|
||||
<a class="admin-footer-item" href="./logout">로그아웃</a>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
@@ -7,9 +7,9 @@ using TaxBaik.Web.Services.AdminClients;
|
||||
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
||||
builder.RootComponents.Add<TaxBaik.WasmClient.Components.Admin.App>("#app");
|
||||
|
||||
// API Base Url: Admin SPA is hosted under /taxbaik/admin/, while APIs live under /taxbaik/api/.
|
||||
// API Base Url: 상대 경로 사용 (Nginx가 /taxbaik 프리픽스 처리)
|
||||
var hostBase = new Uri(builder.HostEnvironment.BaseAddress);
|
||||
var apiBaseUrl = new Uri(hostBase, "/taxbaik/api/").ToString();
|
||||
var apiBaseUrl = new Uri(hostBase, "/api/").ToString();
|
||||
|
||||
// HTTP Client for API (with automatic token refresh)
|
||||
builder.Services.AddScoped<ITokenStore, TokenStore>();
|
||||
|
||||
@@ -71,7 +71,7 @@ public class TokenRefreshHandler : DelegatingHandler
|
||||
var scheme = originalRequest.RequestUri?.Scheme ?? "http";
|
||||
|
||||
using var httpClient = new HttpClient();
|
||||
var refreshUri = new Uri($"{scheme}://{authority}/taxbaik/api/auth/refresh");
|
||||
var refreshUri = new Uri($"{scheme}://{authority}/api/auth/refresh"); // 상대 경로 사용
|
||||
var json = JsonSerializer.Serialize(new { refreshToken });
|
||||
var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user