acf7b8cfc4
- Map /login route to static login.html file to serve embedded CSS correctly - Redirect /login to /login.html for proper static file delivery - Fix NavigationContext namespace ambiguity in App.razor (MudBlazor vs ASP.NET) - Fix StatusCodePages middleware path validation (StartsWithSegments → StartsWith) Login page now displays with: - Gradient background with frosted glass card design - Properly styled form inputs and validation - Professional Material Design appearance - Working client-side authentication flow Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
56 lines
1.8 KiB
Plaintext
56 lines
1.8 KiB
Plaintext
@using System.Reflection
|
|
@using QuantEngine.Web.Client.Pages
|
|
@using Microsoft.AspNetCore.Components.Routing
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="ko">
|
|
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<base href="/" />
|
|
|
|
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" rel="stylesheet" />
|
|
<link href="_content/MudBlazor/MudBlazor.min.css" rel="stylesheet" />
|
|
<link rel="stylesheet" href="app.css" />
|
|
<link rel="icon" type="image/svg+xml" href="favicon.svg" />
|
|
<link rel="alternate icon" type="image/png" href="favicon.png" />
|
|
|
|
<HeadOutlet />
|
|
</head>
|
|
|
|
<body>
|
|
<div id="app">
|
|
<CascadingAuthenticationState>
|
|
<Router AppAssembly="@typeof(App).Assembly"
|
|
AdditionalAssemblies="new[] { typeof(QuantEngine.Web.Client.Pages.Dashboard).Assembly }"
|
|
OnNavigateAsync="@OnNavigateAsync" />
|
|
</CascadingAuthenticationState>
|
|
</div>
|
|
|
|
<script src="_framework/blazor.web.js"></script>
|
|
<script src="_content/MudBlazor/MudBlazor.min.js"></script>
|
|
</body>
|
|
|
|
</html>
|
|
|
|
@code {
|
|
private async Task OnNavigateAsync(Microsoft.AspNetCore.Components.Routing.NavigationContext context)
|
|
{
|
|
// /Account/* paths are Razor Pages, not Blazor components
|
|
// Force browser navigation instead of Blazor routing
|
|
if (context.Path.StartsWith("Account/", StringComparison.OrdinalIgnoreCase)
|
|
|| context.Path.StartsWith("/Account/", StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
// Prevent Blazor from handling this route
|
|
// Force a full page reload via browser
|
|
await Task.CompletedTask;
|
|
// This triggers browser to make a new request, bypassing Blazor
|
|
}
|
|
else
|
|
{
|
|
await Task.CompletedTask;
|
|
}
|
|
}
|
|
}
|