URL изображения правильный, но изображение не отображается - PullRequest
7 голосов
/ 12 января 2011

У меня есть сайт на GoDaddy.Все разрешения установлены правильно, и изображение существует.Однако при загрузке страницы изображение для выбранного элемента не отображается.Вот мой код

        imagepath = "~/spaimages/" + currentSpaModel.Name.ToString() + ".png";
        if (File.Exists(Server.MapPath(imagepath)))
        { this.spaimage.ImageUrl = Server.MapPath(imagepath); }

spaimage - это элемент управления ASP, и URL-адрес, на который установлено изображение, - это D: \ hosting \ xxxxxxx \ calspas \ spaimages \ modelname.png

Что такоеЯ делаю неправильно.

Ответы [ 2 ]

15 голосов
/ 12 января 2011

Путь к файлу D:\hosting\xxxxxxx\calspas\spaimages\modelname.png - это папка, в которой изображение находится на веб-сервере. Вы отправляете это как атрибут src тега <img>, который сообщает браузеру: «Идите, получите изображение на D:\hosting\xxxxxxx\calspas\spaimages\modelname.png». Браузер не может подключиться к диску D веб-сервера, поэтому он ищет на своей папке D эту папку и образ.

То, что вы хотите сделать, это иметь атрибут src тега <img> как путь к папке на веб-сайте . Вы почти у цели - просто отбросьте часть Server.MapPath при назначении пути изображения свойству ImageUrl. То есть вместо:

this.spaimage.ImageUrl = Server.MapPath(imagepath);

Do:

this.spaimage.ImageUrl = imagepath;

Посмотрите, работает ли это.

Спасибо

2 голосов
/ 12 января 2011

Часто, если изображение «не отображается» (я предполагаю, что отображается красный-x-эквивалент, показывающий «разбитое изображение»), я щелкаю правой кнопкой мыши сломанное изображение, копирую URL и открываю URL в отдельное окно браузера.

Таким образом, когда изображение генерируется каким-либо сценарием, я вижу любой текст ошибки, который мог показать сценарий. Если нет, то будет отображаться реальное изображение.

Кроме того, добавьте блок else к

if (File.Exists(Server.MapPath(imagepath)))
*

1009, как *

else 
{ 
    Response.Write(string.Format(
        "File does not exist at '{0}'.", 
        Server.MapPath(imagepath))); 
}

Для целей отладки.

...