Я использую статическое программное обеспечение для доступа к файлам, расположенным вне wwwroot. Эти ресурсы включают в себя файлы CSS и изображения и доступны в ~ / resources. Например, клиентская css находится здесь:
<link rel="stylesheet" href="~/resources/css/customer.css" />
Теперь я хотел бы предоставить статический html-файл, расположенный в ~ / resources / html / static.html. Я создал модель, которая содержит только свойство HtmlString, и я хочу внедрить содержимое static.html в стандартный cshtml, используя эту модель. Вот мое действие контроллера:
public IActionResult MentionsLegales()
{
var filePath = IO.Path.Combine(
_env.ContentRootPath, "PersonnalisationClient", _config["PersonnalisationClient:NomClient"], "html", "mentionslegales.html");
var mentionsLegalesModel = new MentionsLegalesModel();
if (IO.File.Exists(filePath))
mentionsLegalesModel.Content = new Microsoft.AspNetCore.Html.HtmlString(IO.File.ReadAllText(filePath));
else
{
_logger.LogWarning($"Le fichier {filePath} est introuvable");
mentionsLegalesModel.Content = new Microsoft.AspNetCore.Html.HtmlString(string.Empty);
}
return View(mentionsLegalesModel);
}
Как видите, здесь я обращаюсь к файлу по его физическому пути. Это работает, но я не удовлетворен этим решением. Я хотел прочитать файл через его путь к серверу, то есть ~ / resources / html / mentionslegales.html, но я не знаю, как это сделать. По-видимому, в не Core MVC можно использовать Server.MapPath для таких целей, но я не смог найти эквивалент в ядре MVC. У вас есть идеи?