取决于开发/生产环境的不同基本路径

时间:2019-12-11 15:44:34

标签: asp.net-core razor blazor

我刚刚在开发服务器上发布了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 /。有想法吗?

1 个答案:

答案 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>
相关问题