繁体   English   中英

如何在asp.net核心的Razor中更改根路径~/

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM