在ASP.NET Core应用程序中,如果您使用base href
元素定义了站点的根URL,则期望导航管理器会使用该值来构建页面URL。但是,在某些情况下,可能会导致导航管理器忽略base href
值,从而导致页面URL不正确。
解决此问题的一种方法是使用JavaScript代码手动设置导航管理器的根相对路径。例如,以下代码将查找base href
元素的值并应用于导航管理器:
window.onload = function () {
var baseUrl = document.getElementsByTagName('base')[0].href;
if (baseUrl && baseUrl.length > 0) {
window.BlazorNavigationManager.listenForNavigation(function (uri) {
const absoluteUri = new URL(uri, baseUrl);
return absoluteUri.href;
});
}
};
将此代码添加到您的项目的任何JavaScript文件中,并在调用BlazorNavigationManager.listenForNavigation
之前加载它。这应该解决导航管理器不使用base href
值的问题。