【发布时间】:2021-03-03 13:10:32
【问题描述】:
我不确定问题的标题是否正确,但我会尝试解释我需要什么。
我们在一台机器上托管多个 Web 应用程序,所以
https://localhost:8080
和
https://localhost:8081
指向不同的应用程序。
同时,API 网关映射请求而不删除 URL 后缀:
https://api.domain.com/service1/Home/Index
变成
https://localhost:8080/service1/Home/Index
和
https://api.domain.com/service2/Home/Index
进入
https://localhost:8081/service2/Home/Index
我希望应用的根 ~ 解析为 hostUrl+suffix,其中后缀是配置值。
我使用这个blogpost 为控制器和页面的所有路由添加全局前缀,但现在我在处理静态文件时遇到了困难。
我可以虚拟移动wwwroot:
app.UseStaticFiles(new StaticFileOptions
{
RequestPath = $"/{GlobalPrefix}"
});
但<link href="~/bootstrap/css/bootstrap.css" rel="stylesheet" /> 在渲染时不包含GlobalPrefix 部分。
所以我想将此GlobalPrefix 添加到托管的任何基本 URL 站点。无论是自托管应用还是在 IIS 中。
附: RTFM =)
【问题讨论】:
-
您是否尝试过在 Configure 中使用 app.UsePathBase("/myPath") 设置路径库? ASP.NET Core 2 对此进行了更改 (github.com/aspnet/Announcements/issues/226)。另外,请注意一个奇怪的行为:github.com/aspnet/HttpAbstractions/issues/893
-
@Daboul,谢谢,它有效。在
WebHostBuilderextensions 中寻找类似的东西 =) -
很高兴听到。到时候我会把它作为答案发布。
标签: asp.net-core