在 asp.net 中,图像仅显示在默认页面上

In asp.net images show on default page only

图像显示在 default.aspx 中,当我将页面另存为 link1.aspx 并且不做任何其他更改时,它显示替代文本,而不是图像。

<tr> 
<td align="left" valign="bottom">
<img src="/images/default_home.gif" alt="home" width="140" height="90" border="0" name="topLink9"
usemap="#default9Map" /></td>
</tr>
<tr>
<td>
<img src="images/default_link1.gif" alt="" width="140" height="60" border="0" name="topLink1"
usemap="#default1Map" /></td>
</tr>

如果您对图像使用服务器控件,您可以使用“~”来标记 "relative to root" 路径。您看到的问题是由于路径与调用页面相关。

如果你的结构是这样的:

root
root/images
root/default.aspx
root/pages/link1.aspx

root/default.aspx 开始,路径 /images/default_home.gif 也指向 root/images/default_home.gif

WHen 在 root/pages/link1.aspx 中相同的路径 /images/default_home.gif 指向 root/pages/images/default_home.gif - 这不是有效路径。

您可以这样使用服务器控制图像:

<asp:Image ID="imgId" runat="server" ImageUrl="~/images/default_home.gif" />

您的图片使用的是相对路径,如果网页位于子目录中,这将中断,这听起来像您遇到的问题。

根据您在 HTML 中使用长期弃用的表示属性这一事实来判断,我假设您使用的是 ASP.NET WebForms,在这种情况下只需应用 runat="server"到您的 <img /> 元素并使用特殊的根相关语法:

<img runat="server" src="~/images/default_home.gif" />