2011-01-12 43 views
6

Tengo un sitio web en GoDaddy. Todos los permisos están configurados correctamente y la imagen SÍ existe. Sin embargo, cuando la página carga, la imagen del elemento seleccionado no se muestra. Aquí está mi códigoLa URL de la imagen es correcta pero la imagen no muestra

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

spaimage es un control ASP y thr URL que la imagen se ajusta a es D: \ alojamiento \ xxxxxxx \ calspas \ spaimages \ modelname.png

¿Qué estoy haciendo mal.

Respuesta

14

La ruta del archivo D:\hosting\xxxxxxx\calspas\spaimages\modelname.png es la carpeta donde reside la imagen en el servidor web. Está enviando esto como el atributo <img> de la etiqueta src, que le dice al navegador, "Ve a buscar la imagen al D:\hosting\xxxxxxx\calspas\spaimages\modelname.png". El navegador no puede ir a la unidad D del servidor web, por lo que busca en su propia unidad D esa carpeta e imagen.

Lo que quiere decir que hacer es tener el atributo de la etiqueta <img>src ser una ruta a una carpeta en el sitio web. Está a punto de hacerlo: solo deje caer la parte Server.MapPath cuando asigne la ruta de la imagen a la propiedad ImageUrl. Es decir, en lugar de:

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

Do:

this.spaimage.ImageUrl = imagepath; 

ver si funciona.

Gracias

+0

Scott eres increíble, gracias que funcionó a la perfección – mattgcon

2

A menudo, si una imagen "no se muestra" (supongo que se muestra un equivalente de red-x para mostrar "imagen rota"), hago clic con el botón derecho en la imagen rota, copio la URL y abro la una ventana de navegador separada.

De esta manera, cuando la imagen está siendo generada por alguna secuencia de comandos, veo cualquier texto de error que la secuencia de comandos podría haber mostrado. Si no, se mostraría la imagen real.

Además, añadir un bloque else a la

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

como

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

para fines de depuración.

+0

En realidad, el control de imagen asp muestra una pequeña caja sin una x roja. y cuando hago clic derecho para ver las propiedades de la imagen, no hay nada, pero cuando voy a ver la fuente, la URL está presente. – mattgcon

Cuestiones relacionadas