iis 在子文件夹中部署Blazor Web app .net 8-类型Map错误

mtb9vblg  于 12个月前  发布在  .NET
关注(0)|答案(1)|浏览(180)

我已经创建了一个新的Blazor Web App项目(.Net 8),并希望将其部署在Windows Server上的IIS中,但在子文件夹“MyApp”中。为此,我更新了app.razor文件,添加:

<base href="/MyApp/" />

字符串
一切正常,除了当我去“管理您的帐户”页面,并试图浏览菜单。当我第一次去“管理您的帐户”它重定向我到
https://example.com/MyApp/Account/Manage
然后我可以去“电子邮件”重定向我到:
https://example.com/MyApp/Account/Manage/Email
但是当我转到“密码”时,它没有正确地重定向我,而是使用的URL是:
https://example.com/MyApp/Account/Manage/Account/Manage/ChangePassword
我无法解决这个双重“帐户/管理/帐户/管理”问题。
我应该在program.cs文件中添加其他内容吗?

b1uwtaje

b1uwtaje1#

我想我已经找到了缺失的部分,使其正常工作。有2个步骤要做:

  • 正如我的问题中所说,必须将<base href="/MyApp/">添加到app.razor文件中
  • 在服务器项目的program.cs文件中,必须添加这样的代码:
if (!app.Environment.IsDevelopment())
{
    app.MapWhen(ctx => ctx.Request.Path.StartsWithSegments("/MyApp"), first =>
    {
        first.UseBlazorFrameworkFiles("/MyApp);
        first.UseStaticFiles();
        first.UseRouting();
    });
}

字符串
我在IIS上这样部署。

相关问题