簡體   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