[英]How to change root path ~/ in Razor in asp.net core
我找不到答案的最简单的问题。
我有一个带有 Razor 的 ASP.NET Core 2.1 MVC 应用程序。
应用程序广泛使用~/path
语法。 如果应用程序从域根(例如,从http://localhost:5000/ )运行,一切都会很好
但是当我在非根目录下运行应用程序(例如, http://localhost:5000/app )时,Razor 仍然使用根目录 ( /
) 作为基本路径。
问题:如何配置? 如何为 Razor 的~/
指定基本路径? 它必须有一个环境变量:)
PS:应用程序在反向代理后面的 docker 中运行。
在“配置”方法的“启动”类中,使用下一个:
app.UsePathBase("/yourBasePath");
.NET Core 3.1 我使用了 context.Request.PathBase 如下
app.Use((context, next) =>
{
context.Request.Scheme = schemeValue;
#if !DEBUG
context.Request.PathBase = $"/{applicationOptions.BasePath}";
#endif
return next();
});
.NET 6 你需要应用app.UseRouting();
也喜欢
var app = builder.Build();
app.UsePathBase("/SomeBasePath");
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapControllers();
app.Run();
来自里程碑: https : //github.com/dotnet/aspnetcore/issues/38448
pd:默认路由仍然有效,因此用户可以点击:
/SomeBasePath/api
/api
解决方法: https : //stackoverflow.com/a/69859449/11813109未测试
这是 .NET 7 的里程碑,所以我们只需要等待文档和修复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.