如何在 Blazor 中创建动态基本路径

问题描述 投票:0回答:1

我在 .NET 8 中有一个 blazor 应用程序。我的 App.razor 文件如下所示;

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <base href="/" />
    <link rel="stylesheet" href="bootstrap/bootstrap.min.css" />
    <link rel="stylesheet" href="app.css" />    
    <link rel="icon" type="image/png" href="favicon.png" />
    <HeadOutlet />
</head>

<body>
    <Routes />
    <script src="_framework/blazor.web.js"></script>
</body>

</html>

在本地运行时,引导文件和所有重定向都会成功运行。但是,在测试环境中,无法访问引导程序文件,因为我的应用程序在测试环境中以类似 test.blabla.com/appname 的地址打开。

我期待在 test.blabla.com/appname/bootstrap/bootstrap.min.css 下搜索引导程序文件,但它不会在此地址中搜索它搜索 test.blabla.com/bootstrap/bootstrap.min.css所以找不到。

我尝试使用

<base href="~/" />
 <base href="@NavigationManager.BaseUri" />
代替
<base href="/" />
但没有用。通过输入
<base href="appname/" />
问题就解决了,但是这次在本地出现错误。我该如何解决这个问题?

c# asp.net .net blazor blazor-server-side
1个回答
0
投票

你可以这样做:

@inject IHostEnvironment Env

@if (Env.IsDevelopment())
{
    <base href="/appname/"  />
}
else
{
    <base href="/" />
}

相应地调整

if
条件,例如检查您的环境变量或其他所需的逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.