我有一个非常基本的 Blazor WASM 应用程序,针对 .NET 8,托管在 Azure 静态 Web 应用程序上。
我刚刚添加了一个非常简单的页面——见下文。我可以直接在本地访问 URL,它工作正常,但在 Azure 静态 Web 应用服务上,我收到以下页面未找到错误——见下文。有趣的是,这不是我的应用程序应该生成的页面未找到错误。
以下是“Azure 页面未找到”错误:
我的简单页面如下所示:
@page "/privacy"
<h3>Privacy Policy</h3>
<div>
<p>Some text about privacy policy</p>
<p>More text about privacy policy</p>
</div>
我的应用程序使用 Azure AD B2C 进行用户管理,我刚刚添加的隐私页面应该对公众(即匿名用户和经过身份验证的用户)开放。
这就是我的App.razor
样子:
<CascadingAuthenticationState>
<Router AppAssembly="@typeof(App).Assembly">
<Found Context="routeData">
<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)">
<NotAuthorized>
@if (context.User.Identity?.IsAuthenticated != true)
{
<RedirectToLogin />
}
else
{
<p role="alert">You are not authorized to access this resource.</p>
}
</NotAuthorized>
</AuthorizeRouteView>
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
<NotFound>
<PageTitle>Not found</PageTitle>
<LayoutView Layout="@typeof(MainLayout)">
<p role="alert">Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>
</CascadingAuthenticationState>
知道这里可能存在什么问题吗?
为了避免静态 Web 应用程序中出现“找不到页面”错误,我将该
staticwebapp.config.json
文件添加到了项目的根目录中。它允许您在 Azure 环境中配置路由、身份验证、授权和其他与应用程序功能相关的关键设置。
静态webapp.config.json:
如果您使用身份验证,请使用下面的staticwebapp.config.json文件。
Azure 静态 Web 应用程序输出: