У меня проблема с размещением веб-приложения. NET Core на Linux, с обратным прокси-сервером (Apache или Nginx), с несколькими местоположениями для различных портов Kestrel.
Когда Я пытаюсь использовать файлы stati c, размещенные в wwwroot/..., используя @ Url.Content ("~") в макете или скрипты загрузки / css в представлениях, а Request.PathBase возвращает "пусто", поэтому приложение не загружает js или css правильно.
Вместо загрузки статики на mydomain2.com/test2/js / ... ищите их в mydomain2.com/js / ... (тогда не найдено stati c файлов)
Я пытался отследить запрос следующим образом:
Контроллер - >>
ViewData["Scheme"] = $"{this.Request.Scheme}";
ViewData["Host"] = $"{this.Request.Host}";
ViewData["PathBase"] = $"{this.Request.PathBase}";
ViewData["Url"] = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}";
ViewData["CurrentPath"] = $"{Directory.GetCurrentDirectory()}";
ViewData["Location"] = $"{System.Reflection.Assembly.GetExecutingAssembly().Location}";
ViewData["Path"] = $"{this.Request.Path}";
Просмотр - >>
<label>Scheme: @ViewData["Scheme"]</label>
<br />
<label>Host: @ViewData["Host"]</label>
<br />
<label>PathBase: @ViewData["PathBase"]</label>
<br />
<label>Url: @ViewData["Url"]</label>
<br />
<label>CurrentPath: @ViewData["CurrentPath"]</label>
<br />
<label>Location: @ViewData["Location"]</label>
<br />
<label>Path: @ViewData["Path"]</label>
Получение этого результата в IIS:
И этот включен Linux:
Находится в похожем URL:
IIS: mydomain1.com/test/
Linux: mydomain2.com/test2/
Я пытался передать ForwardedHeadersOptions, чтобы url.content понимал место, где он развернут:
// Forwarded Headers Middleware
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
, а также переписать PathBase:
app.UsePathBase("/test2");
Но Мне не удалось загрузить stati c с mydomain2.com/test2/js / ..., но он продолжает пытаться загрузить с mydomain2.com/js / ..., что, конечно, не там.
В чем моя ошибка? Есть идеи как это исправить? Спасибо.
Среди других сайтов, которые я читал эти сообщения:
ASP. Net core 3.0 (3.1) set PathBase ...
. NET Приложение Core Nancy, обслуживающее данные c файлов
Перенаправление при использовании PathBase
Как изменить root путь ~ / в Razor в asp. net core ...