Razor页面中wwwroot下的静态文件路径

时间:2019-10-25 15:11:12

标签: asp.net-core razor-pages

这三种用于获取存储在wwwroot下的图像的路径的方法之间有什么区别?在我的情况下,似乎所有工作原理都是相同的,但想了解它们之间是否还有其他特定情况下的区别,或者使用另一种方法的好处。

我使用此路径随后将图像加载到Bitmap MyBitmap变量中以进行进一步处理。无论最终部署到Windows,Linux还是容器,都希望它具有环境适应性;本地或在云中。

在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 个答案:

答案 0 :(得分:2)

还有另一种选择:

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

WebRootPath返回wwwroot文件夹的路径。

建议不要使用前两个选项,因为它们可能无法返回您想要的位置:Best way to get application folder path