我在 .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/" />
问题就解决了,但是这次在本地出现错误。我该如何解决这个问题?
你可以这样做:
@inject IHostEnvironment Env
@if (Env.IsDevelopment())
{
<base href="/appname/" />
}
else
{
<base href="/" />
}
相应地调整
if
条件,例如检查您的环境变量或其他所需的逻辑。