【发布时间】:2017-05-10 13:30:45
【问题描述】:
我将图像存储在名为 "Images" 的文件夹中,该文件夹不在 wwwroot 文件夹中。 所以现在我无法访问它所以我的问题是 如何授予对包含图像的文件夹的访问权限,而那个文件夹不是 wwwroot 的子文件夹?还是必须将这些文件放在 wwwroot 文件夹中?
【问题讨论】:
标签: image asp.net-core-mvc iformfile wwwroot
我将图像存储在名为 "Images" 的文件夹中,该文件夹不在 wwwroot 文件夹中。 所以现在我无法访问它所以我的问题是 如何授予对包含图像的文件夹的访问权限,而那个文件夹不是 wwwroot 的子文件夹?还是必须将这些文件放在 wwwroot 文件夹中?
【问题讨论】:
标签: image asp.net-core-mvc iformfile wwwroot
是的,Asp.Net Core 提供了一种方法来做到这一点。您可以从不在 wwwroot 文件夹中的图像目录提供图像。事实上,您可以从任何地方为它们提供服务,包括嵌入资源文件甚至是数据库之外。
关键是在Startup.cs文件的Configure方法中注册一个FileProvider,这样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
【讨论】: