URL immagine è corretta ma l'immagine non mostrare
-
10-10-2019 - |
Domanda
Ho un sito web su GoDaddy. Tutte le autorizzazioni siano impostate correttamente e l'immagine esiste. Tuttavia, quando la pagina viene caricata l'immagine per l'elemento selezionato non mostra. Ecco il mio codice
imagepath = "~/spaimages/" + currentSpaModel.Name.ToString() + ".png";
if (File.Exists(Server.MapPath(imagepath)))
{ this.spaimage.ImageUrl = Server.MapPath(imagepath); }
spaimage è un controllo ASP e thr URL che l'immagine è impostata è D: \ ospita \ xxxxxxx \ calspas \ spaimages \ modelname.png
Che cosa sto facendo di sbagliato.
Soluzione
Il D:\hosting\xxxxxxx\calspas\spaimages\modelname.png
percorso del file è la cartella in cui l'immagine risiede sul server web. Stai inviando questo come attributo <img>
del tag src
, che dice al browser, "Vai a prendere l'immagine a D:\hosting\xxxxxxx\calspas\spaimages\modelname.png
." Il browser non può andare via per l'unità D del server web, in modo che appaia sul suo drive D per quella cartella e l'immagine.
Che cosa hai intenzione di fare è di avere l'attributo <img>
del tag src
essere un percorso di una cartella sul sito web . Si è sul punto lì - basta semplicemente inserire la parte Server.MapPath
durante l'assegnazione del percorso di immagine alla proprietà ImageUrl
. Cioè, invece di:
this.spaimage.ImageUrl = Server.MapPath(imagepath);
Do:
this.spaimage.ImageUrl = imagepath;
vedere se funziona.
Grazie
Altri suggerimenti
Spesso, se un'immagine "non mostra" (presumo un rosso-x-equivalente che viene visualizzato per mostrare "un'immagine rotto"), right-click l'immagine rotto, copiare l'URL e aprire l'URL in un finestra separata del browser.
In questo modo, quando l'immagine viene generata da alcuni script, ho visto alcun testo di errore che lo script potrebbe essere mostrato. In caso contrario, verrebbe visualizzata l'immagine reale.
Inoltre, aggiungere un blocco else
alla
if (File.Exists(Server.MapPath(imagepath)))
come
else
{
Response.Write(string.Format(
"File does not exist at '{0}'.",
Server.MapPath(imagepath)));
}
Per scopi di debug.