Для Map
и MapWhen
, когда используется Map, совпадающие сегменты пути удаляются из HttpRequest.Path и добавляются в HttpRequest.PathBase для каждого запроса. Когда MapWhen
используется, это не так.
Для Spa
будет использоваться requestPathBase: context.Request.PathBase.ToString());
, отметьте SpaPrerenderingExtensions .
Чтобы достичь того же результата, вы можете попытаться удалить и добавить Путь самостоятельно.
app.MapWhen(ctx => {
if (ctx.Request.Path.StartsWithSegments("/ca"))
{
ctx.Request.Path = ctx.Request.Path.Value.Replace("/ca","");
ctx.Request.PathBase = "/ca/";
return true;
}
return false;
}, ca =>
{
ca.UseSpa(spa =>
{
//rest code
});
});