2012-08-22 129 views
1
<asp:ImageButton runat="server" ID="cal_btn1" 
     AlternateText="image" ImageUrl="~/Images/calendar_icon1.png"/> 

图像获取与上面的代码显示出来,但我不知道,当我使用绝对路径 - 会发生什么ASP的图片:ImageButton的使用相对路径越来越显示出来,而不是绝对路径

<asp:ImageButton runat="server" ID="cal_btn1" 
     AlternateText="image" ImageUrl="C:\Users\adwivedi\Documents\Visual Studio 2010\WebSites\WebSite1\Images\calendar_icon1.png"/> 

我用'\'代替'\',但仍然没有改变。任何想法有什么不对?谢谢!

回答

3

它不工作,因为你必须使用一个URL,而不是一个物理路径。

使用ImageUrl属性指定要在Image控件中显示的图像的URL。您可以使用相对或绝对网址。相对URL将图像的位置与Web页面的位置相关联,而无需在服务器上指定完整路径。该路径相对于网页的位置。这样可以更轻松地将整个站点移动到服务器上的另一个目录,而无需更新代码。绝对URL提供完整路径,因此将网站移动到其他目录需要您更新代码。

绝对URL

<asp:ImageButton runat="server" ID="cal_btn1" 
    AlternateText="image" ImageUrl="http://mydomain/Images/calendar_icon1.png"/> 

相对URL

<asp:ImageButton runat="server" ID="cal_btn1" 
    AlternateText="image" ImageUrl="Images/calendar_icon1.png"/> 

应用程序根目录相对URL

<asp:ImageButton runat="server" ID="cal_btn1" 
    AlternateText="image" ImageUrl="~/Images/calendar_icon1.png"/> 

,我建议你去看看在关系this MSDN文章发送给ASP .net路径。

+0

如果我使用相对Url“Images/calendar_icon1.png”,它应该在我在不同位置使用IIS托管网站时正常工作,对吧?但那不是发生了什么! – ankit0311

+0

@ ankit0311:取决于使用此控件的页面与图片文件夹相关的位置。您可以添加更多关于文件层次结构的细节,也可以使用绝对URL。 –

+1

@ ankit0311:这与上面提到的问题无关。你的绝对路径不起作用的原因是因为Claudio的原因。如果在部署时遇到图像可见性方面的问题,则应该将其作为单独的问题提出。 – Chris