Fix admin wasm bootstrap and dashboard routing
TaxBaik CI/CD / build-and-deploy (push) Failing after 3m32s

This commit is contained in:
2026-07-08 01:00:35 +09:00
parent ece81306fb
commit d38275e9c7
6 changed files with 30 additions and 23 deletions
@@ -10,7 +10,6 @@
<link rel="alternate icon" href="/taxbaik/favicon.ico" /> <link rel="alternate icon" href="/taxbaik/favicon.ico" />
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700&display=swap" rel="stylesheet" /> <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700&display=swap" rel="stylesheet" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" /> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
<link href="_content/MudBlazor/MudBlazor.min.css" rel="stylesheet" />
<script> <script>
window.taxbaikAdminBuildVersion = 'unknown'; window.taxbaikAdminBuildVersion = 'unknown';
window.taxbaikAdminComponent = 'AdminApp'; window.taxbaikAdminComponent = 'AdminApp';
@@ -35,7 +34,6 @@
</div> </div>
</div> </div>
<Routes @rendermode="@(new InteractiveWebAssemblyRenderMode(prerender: false))" /> <Routes @rendermode="@(new InteractiveWebAssemblyRenderMode(prerender: false))" />
<script src="_content/MudBlazor/MudBlazor.min.js"></script>
<script src="js/admin-session.js"></script> <script src="js/admin-session.js"></script>
<script src="_framework/blazor.webassembly.js"></script> <script src="_framework/blazor.webassembly.js"></script>
<script> <script>
@@ -1,11 +1,18 @@
@page "/"
@page "/admin" @page "/admin"
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false)) @rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false))
@attribute [Authorize] @attribute [Authorize]
@inject NavigationManager NavigationManager
@code { <PageTitle>관리자</PageTitle>
protected override void OnInitialized()
{ <section class="admin-simple-page">
NavigationManager.NavigateTo("/taxbaik/admin/dashboard", replace: true); <header class="admin-simple-header">
} <p class="admin-simple-eyebrow">Admin</p>
} <h1 class="admin-simple-title">관리자 시작 화면</h1>
<p class="admin-simple-subtitle">이 페이지는 라우팅과 렌더링만 확인하기 위한 최소 시작점입니다.</p>
</header>
<div class="admin-simple-card">
관리자 시작 화면이 정상 렌더링되면 부트스트랩 자체는 동작합니다.
</div>
</section>
@@ -1,3 +1,4 @@
@page "/dashboard"
@page "/admin/dashboard" @page "/admin/dashboard"
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false)) @rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false))
@attribute [Authorize] @attribute [Authorize]
@@ -1,10 +1,14 @@
<PageTitle>대시보드</PageTitle> <PageTitle>대시보드</PageTitle>
<AdminPageHeader Title="대시보드" Eyebrow="Home" Subtitle="관리자 대시보드 초기화 문제를 분리하는 최소 렌더 화면입니다." /> <section class="admin-simple-page">
<header class="admin-simple-header">
<p class="admin-simple-eyebrow">Home</p>
<h1 class="admin-simple-title">대시보드</h1>
<p class="admin-simple-subtitle">관리자 대시보드 초기화 문제를 분리하는 최소 렌더 화면입니다.</p>
</header>
<AdminDataPanel> <div class="admin-simple-card">
<div class="admin-note-list">
<div>대시보드 본문을 단계적으로 복원하며 `get` interop 오류를 추적합니다.</div> <div>대시보드 본문을 단계적으로 복원하며 `get` interop 오류를 추적합니다.</div>
<div>현재 화면은 JS 호출 없이 렌더만 수행합니다.</div> <div>현재 화면은 JS 호출 없이 렌더만 수행합니다.</div>
</div> </div>
</AdminDataPanel> </section>
-9
View File
@@ -1,20 +1,11 @@
using Microsoft.AspNetCore.Components.Authorization; using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using MudBlazor.Services;
using TaxBaik.Application.Services; using TaxBaik.Application.Services;
using TaxBaik.Web.Services; using TaxBaik.Web.Services;
using TaxBaik.Web.Services.AdminClients; using TaxBaik.Web.Services.AdminClients;
var builder = WebAssemblyHostBuilder.CreateDefault(args); var builder = WebAssemblyHostBuilder.CreateDefault(args);
// MudBlazor (WASM 측 인터랙티브 컴포넌트용)
builder.Services.AddMudServices(config =>
{
config.SnackbarConfiguration.HideTransitionDuration = 400;
config.SnackbarConfiguration.ShowTransitionDuration = 300;
config.PopoverOptions.ThrowOnDuplicateProvider = false;
});
// API Base Url: Admin SPA is hosted under /taxbaik/admin/, while APIs live under /taxbaik/api/. // API Base Url: Admin SPA is hosted under /taxbaik/admin/, while APIs live under /taxbaik/api/.
var hostBase = new Uri(builder.HostEnvironment.BaseAddress); var hostBase = new Uri(builder.HostEnvironment.BaseAddress);
var apiBaseUrl = new Uri(hostBase, "/taxbaik/api/").ToString(); var apiBaseUrl = new Uri(hostBase, "/taxbaik/api/").ToString();
+7 -1
View File
@@ -436,7 +436,13 @@ app.Use(async (context, next) =>
if (path.Contains("resource-collection") && path.EndsWith(".js")) if (path.Contains("resource-collection") && path.EndsWith(".js"))
{ {
context.Response.ContentType = "application/javascript"; context.Response.ContentType = "application/javascript";
await context.Response.WriteAsync("export default [];"); await context.Response.WriteAsync("""
export function get() {
return [];
}
export default { get };
""");
return; return;
} }
await next(); await next();