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