Можно ли хранить изображения, отличные от папки wwwroot
Я сохранил изображения в папке "Изображения", которой нет в папке wwwroot. Так что теперь я не могу получить к нему доступ, поэтому мой вопрос заключается в том, как предоставить доступ к папке, содержащей изображения, и эта папка не является подпапкой wwwroot? Или эти файлы обязательно помещать в папку wwwroot?
1 ответ
Да, Asp.Net Core предоставляет способ сделать это. Вы можете подавать изображения из каталога Images, который не находится в папке wwwroot. На самом деле, вы можете обслуживать их из любого места, включая встраивание файлов ресурсов или даже из базы данных.
Ключ должен зарегистрировать FileProvider
в Configure
метод файла Startup.cs, чтобы 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