Asp.net core 不同的基本路径取决于开发/生产环境
我刚刚在我们的开发服务器上发布了一个Blazor应用程序,以测试是否一切正常。我设置了服务器,因此我必须访问以下地址下的应用程序:Asp.net core 不同的基本路径取决于开发/生产环境,asp.net-core,razor,blazor,Asp.net Core,Razor,Blazor,我刚刚在我们的开发服务器上发布了一个Blazor应用程序,以测试是否一切正常。我设置了服务器,因此我必须访问以下地址下的应用程序: serveraddress:8090/UserManagement 在我的本地开发机器上,我不需要UserManagement文件夹,我只需要访问并直接重定向到我的页面。例如,我的索引页可以在 @page "/" 在我的本地机器上。但是,当我在开发服务器上运行软件时,应该在路径中添加一个额外的/UserManagement标记。我在服务器上将ASPNETCORE
serveraddress:8090/UserManagement
在我的本地开发机器上,我不需要UserManagement文件夹,我只需要访问并直接重定向到我的页面。例如,我的索引页可以在
@page "/"
在我的本地机器上。但是,当我在开发服务器上运行软件时,应该在路径中添加一个额外的/UserManagement标记。我在服务器上将ASPNETCORE_环境变量设置为“Development”,并尝试如下更改_Hosts.cshtml中的标记:
不幸的是,这不起作用,所有重定向都转到/而不是/UserManagement/。有什么想法吗?好的,我想我找到了解决办法。 首先,我更改了基本url,以便只有在找到开发环境变量时,才会使用基本url/UserManagement:
_Hosts.cshtml:
<environment include="Development">
<base href="/UserManagement/" />
</environment>
<environment exclude="Development">
<base href="~/" />
</environment>
但单凭这一点仍然无法奏效。问题是,我使用这样的hrefs链接转发到另一个页面:
<a href="/CreateD5User" class="btn btn-success">New User</a>
使用前导斜杠,UserManagement目录未被预加。但是,在删除像这样的前导斜杠之后,它工作了,并且添加了/UserManagement/
<a href="CreateD5User" class="btn btn-success">New User</a>
好的,我想我找到了解决办法。 首先,我更改了基本url,以便只有在找到开发环境变量时,才会使用基本url/UserManagement:
_Hosts.cshtml:
<environment include="Development">
<base href="/UserManagement/" />
</environment>
<environment exclude="Development">
<base href="~/" />
</environment>
但单凭这一点仍然无法奏效。问题是,我使用这样的hrefs链接转发到另一个页面:
<a href="/CreateD5User" class="btn btn-success">New User</a>
使用前导斜杠,UserManagement目录未被预加。但是,在删除像这样的前导斜杠之后,它工作了,并且添加了/UserManagement/
<a href="CreateD5User" class="btn btn-success">New User</a>
remove~
在您的HREF中,您的开发/生产是否已反转?@Henk:为了更清楚地说明这一点:我需要在我们的开发服务器(实际上它是一个测试服务器)和生产服务器上使用/UserManagement前缀,因为我们有许多应用程序在那里运行。另一方面,我不需要在本地开发人员的笔记本电脑(Visual Studio)上使用/UserManagement前缀。@Agua:不幸的是,这不起作用。仍然路由到/pagename,而不是/UserManagement/pagenameAdding app.UsePathBase(“/UserManagement”);到startup.cs也不起作用…编辑:只需将该行移到Configure方法的最开头,现在就可以了!删除您的HREF中的~
“难道您的开发/生产没有反转吗?”亨克:为了更清楚地说明这一点:我需要在我们的开发服务器(实际上它是一个测试服务器)和生产服务器上使用/UserManagement前缀,因为我们有许多应用程序在那里运行。另一方面,我不需要在本地开发人员的笔记本电脑(Visual Studio)上使用/UserManagement前缀。@Agua:不幸的是,这不起作用。仍然路由到/pagename,而不是/UserManagement/pagenameAdding app.UsePathBase(“/UserManagement”);到startup.cs也不起作用…编辑:只需将该行移到Configure方法的最开头,现在就可以了!