Путь к статическому файлу под wwwroot в Razor Pages - PullRequest
1 голос
/ 25 октября 2019

Каковы различия между этими 3 методами, используемыми для получения пути к изображению, хранящемуся в wwwroot? Похоже, что все работают одинаково в моем случае, но хотелось бы понять, есть ли какие-либо другие различия между ними или преимущества использования одного над другим.

Я использую этот путь для последующей загрузки изображения в Bitmap MyBitmap переменная для дальнейшей обработки. Хотел бы, чтобы он был устойчивым к среде независимо от того, что он в конечном итоге развернут в Windows, Linux или контейнере;локально или в облаке.

Использование Razor Pages с ASP.NET Core 3.0.

public class QRCodeModel : PageModel
{
    private readonly IHostEnvironment hostingEnvironment;

    public QRCodeModel(IHostEnvironment environment)
    {
        this.hostingEnvironment = environment;
    }

    public void OnGet()
    {
        string TempPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "img", "Image1.png");
        string TempPath1 = Path.Combine(Environment.CurrentDirectory, "wwwroot", "img", "Image1.png");
        string TempPath2 = Path.Combine(hostingEnvironment.ContentRootPath, "wwwroot", "img", "Image1.png");
    }
}

1 Ответ

2 голосов
/ 25 октября 2019

Существует еще одна опция:

string TempPath4 = Path.Combine(hostingEnvironment.WebRootPath, "img", "Image1.png");

WebRootPath возвращает путь к папке wwwroot.

Рекомендуется использовать первые две опции, поскольку они могут не возвращать местоположениечто вы хотите: Лучший способ получить путь к папке приложения

...