是否可以存储wwwroot文件夹以外的图像

时间:2017-05-10 13:30:46

标签: image asp.net-core-mvc iformfile wwwroot

我将图像存储在文件夹名称“图像”中,而不是在wwwroot文件夹中。 所以现在我无法访问它所以我的问题是 如何授予对包含图像和文件夹的文件夹的访问权限不是wwwroot的子文件夹?或者它必须将这些文件放在wwwroot文件夹中?

1 个答案:

答案 0 :(得分:7)

是的,Asp.Net Core提供了一种方法。您可以从不在wwwroot文件夹中的Images目录中提供图像。事实上,您可以从任何地方为它们提供服务,包括嵌入资源文件甚至数据库。

关键是在Startup.cs文件的FileProvider方法中注册Configure,以便Asp.Net Core知道如何访问要提供的文件。

例如,在您的情况下,因为您想要从名为Images的目录中提供图像,所以假设您的目录层次结构如下所示:

wwwroot
     css
     images
     ...

 Images
     my-image.png

要从图像提供my-image.png,您可以使用以下代码:

 public void Configure(IApplicationBuilder app){
     app.UseStaticFiles(); // For the wwwroot folder

     app.UseStaticFiles(new StaticFileOptions(){
     FileProvider = new PhysicalFileProvider(
         Path.Combine(Directory.GetCurrentDirectory(), @"Images")),
         RequestPath = new PathString("/Images")
     });
 }

您可以在此处了解有关提供静态文件的详情:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files