图片URL是正确的,但图片未显示

7

我在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

文件路径D:\hosting\xxxxxxx\calspas\spaimages\modelname.png是图像在Web服务器上所在的文件夹。你将其作为<img>标签的src属性发送,告诉浏览器:“去获取D:\hosting\xxxxxxx\calspas\spaimages\modelname.png位置的图像。”浏览器无法进入Web服务器的D盘,因此它会查找自己D盘上的该文件夹和图像。

你的本意是让<img>标签的src属性成为指向网站上的文件夹的路径。你已经接近成功了 - 只需在将图像路径分配给ImageUrl属性时省略Server.MapPath即可。也就是说,不要这样做:

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

应该这样做:

this.spaimage.ImageUrl = imagepath;

看看那是否有效。

谢谢


2

通常,如果一张图片“无法显示”(我假设一个红色X等效物被显示来表示“损坏的图像”),我会右键单击该图像,复制URL并在单独的浏览器窗口中打开该URL。

这样,当图像由某个脚本生成时,我就可以看到脚本可能显示的任何错误文本。如果没有错误,真正的图像将被显示。

此外,在代码中添加一个else块。

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

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

为了调试目的。

实际上,ASP图像控件显示一个没有红色X的小框。当我右键单击查看图像属性时,什么也没有,但是当我转到查看源代码时,URL是存在的。 - mattgcon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接