asp.net-core - 如何更改基本网址?
问题描述
我不确定问题的标题是否正确,但我会尝试解释我需要什么。
我们在一台机器上托管多个 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
后缀是配置值的位置。
我使用这篇博文为控制器和页面的所有路由添加全局前缀,但现在我在处理静态文件时遇到了困难。
我几乎可以移动wwwroot
:
app.UseStaticFiles(new StaticFileOptions
{
RequestPath = $"/{GlobalPrefix}"
});
但渲染时<link href="~/bootstrap/css/bootstrap.css" rel="stylesheet" />
不包含部分。GlobalPrefix
因此,我想将此添加GlobalPrefix
到托管的任何基本 URL 站点。无论是自托管应用程序还是在 IIS 中。
PS RTFM =)
解决方案
在这种情况下,使用app.UsePathBase("/myPath")
(https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.builder.usepathbaseextensions.usepathbase?view=aspnetcore-2.2)是有效的。
ASP.NET Core 2 对此进行了更改(http://github.com/aspnet/Announcements/issues/226)。另外,请注意一个奇怪的行为:http: //github.com/aspnet/HttpAbstractions/issues/893
推荐阅读
- amazon-web-services - 将 Cloudflare 配置为指向 AWS Amplify
- android - 更喜欢 AndroidInjector.Factory 现在组件可以有工厂而不是构建器
- angular - 将值更改为作为@input 属性接收的属性 - Angular 7
- java - HashMap 代码不起作用,因为不能应用于给定类型
- security - 研究计算机安全,从哪里开始
- spring - 具有 spring-security 和 webflux 公共模式的过滤器链
- sidekiq - Sidekiq 不处理作业
- django - 在 VSCode 控制台中打印(正在运行的网站的)日志
- c# - 如何从 .NET 中的 txt 文件的开头删除 n 个字符?
- c# - CS1503 参数 1:无法从“Master.Models.RawResponse”转换为“Master.Application.Entities.RawResponse”