Почему изображения не загружаются несмотря на правильный URL в IIS 7?
Это код для чтения полного пути с именем всех файлов (изображений) из папки внутри проекта
@{ string[] imgfiles = Directory.GetFiles(@"D:\MVClearningProjects\Demo\Demo\Property_Data\Images\" + item.Property_ID, "*.*");}
этот код загружает первое изображение в файл вида cshtml
<img src="@Url.Content(imgfiles[0])" alt="carousel bootstrap first" readonly style="width:200px; height:120px;" />
//not allowed local resources when I run this project usig ISS
2 ответа
Эта ошибка произошла из-за использования.physical пути вместо виртуального в следующем коде
@{ string[] imgfiles = Directory.GetFiles(@"D:\MVClearningProjects\Demo\Demo\Property_Data\Images\" + item.Property_ID, "*.*");}
<img src="@Url.Content(imgfiles[0])" alt="carousel bootstrap first" readonly style="width:200px; height:120px;" />
Я исправил это, заменив физический путь на виртуальный
@{ string[] imgfiles = Directory.GetFiles(@"D:\MVClearningProjects\Demo\Demo\Property_Data\Images\" + item.Property_ID, "*.*");
for (int i = 0; i < imgfiles.Length; i++)
{//converting physical address into virtual
imgfiles[i]= imgfiles[i].Replace(@"D:\MVClearningProjects\Demo\Demo", "~").Replace(@"\", "/");
}
}
<img src="@Url.Content(imgfiles[0])" alt="carousel bootstrap first" readonly style="width:200px; height:120px;" />
Как сообщение об ошибке говорит вам, вы не можете это сделать. Из соображений безопасности большинство браузеров просто не позволяют использовать file://
, Вам необходимо разместить его вместе с приложением и загрузить его с веб-сервера.
Взгляните на этот отличный ответ SO для объяснения и предлагаемого решения проблемы.