我刚刚在开发服务器上发布了Blazor应用程序,以测试一切是否正常。我设置了服务器,以便必须在这样的地址下访问该应用程序:
serveraddress:8090/UserManagement
在我的本地开发计算机上,我不需要UserManagement文件夹,我只需访问并直接将其重定向到我的页面即可。例如,我的索引页将位于
@page "/"
在我的本地计算机上。但是,当我在开发服务器上运行该软件时,应该在路径中添加一个附加的/ UserManagement标记。我在服务器上将ASPNETCORE_ENVIRONMENT变量设置为“ Development”,并尝试如下更改_Hosts.cshtml中的标记:
<environment include="Development"> <base href="~/UserManagement" /> </environment> <environment include="Production"> <base href="~/" /> </environment>
不幸的是,这不起作用,所有重定向都转到/而不是/ UserManagement /。有想法吗?
答案 0 :(得分:0)
好的,我想我找到了解决方案。 首先,我更改了基本URL,以便仅在找到Development环境变量时,才使用基本URL / UserManagement:
_Hosts.cshtml:
<environment include="Development">
<base href="/UserManagement/" />
</environment>
<environment exclude="Development">
<base href="~/" />
</environment>
然后我将其添加到startup.cs的configure-method的开头:
app.UsePathBase("/UserManagement");
但是,仅此一项并不能解决问题。问题是,我使用了类似这样的hrefs链接来转发到另一个页面:
<a href="/CreateD5User" class="btn btn-success">New User</a>
以斜杠开头时,UserManagement目录未优先。但是,在像这样删除前导斜杠后,它起作用了,并添加了/ UserManagement /。
<a href="CreateD5User" class="btn btn-success">New User</a>