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