d00*_*00d 3 razor asp.net-core blazor
我刚刚在我们的开发服务器上发布了一个 Blazor 应用程序来测试一切是否运行正常。我设置了服务器,以便我必须在如下地址下访问该应用程序:
serveraddress:8090/UserManagement
Run Code Online (Sandbox Code Playgroud)
在我的本地开发计算机上,我不需要 UserManagement 文件夹,我只需访问并直接重定向到我的页面。例如,我的索引页可以在
@page "/"
Run Code Online (Sandbox Code Playgroud)
在我的本地机器上。但是当我在开发服务器上运行该软件时,路径中应该添加一个额外的 /UserManagement 标签。我在服务器上将 ASPNETCORE_ENVIRONMENT 变量设置为“Development”,并尝试更改 _Hosts.cshtml 中的标记,如下所示:
Run Code Online (Sandbox Code Playgroud)<environment include="Development"> <base href="~/UserManagement" /> </environment> <environment include="Production"> <base href="~/" /> </environment>
不幸的是,这不起作用,所有重定向都转到 / 而不是 /UserManagement/。任何想法?
好吧,我想我找到了解决方案。首先,我更改了基本 url,以便仅当找到开发环境变量时,才会使用基本 url /UserManagement:
_Hosts.cshtml:
<environment include="Development">
<base href="/UserManagement/" />
</environment>
<environment exclude="Development">
<base href="~/" />
</environment>
Run Code Online (Sandbox Code Playgroud)
然后我将其添加到startup.cs配置方法的最开头:
app.UsePathBase("/UserManagement");
Run Code Online (Sandbox Code Playgroud)
但仅凭这一点仍然没有达到目的。问题是,我使用类似的 href 链接转发到另一个页面:
<a href="/CreateD5User" class="btn btn-success">New User</a>
Run Code Online (Sandbox Code Playgroud)
使用前导斜杠,UserManagement 目录不会被预先设置。但是,在删除像这样的前导斜杠之后,它起作用了并且添加了 /UserManagement/ 。
<a href="CreateD5User" class="btn btn-success">New User</a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2410 次 |
| 最近记录: |