ASP.NET 提供用于引用资源并确定应用程序中的页面或其他资源的路径的方法。
根据您使用的是客户端元素还是 Web 服务器控件,选择的引用方法将有所不同。
客户端元素
src 特性:
-
如果引用其他位置(例如外部网站)中的资源,则绝对 URL 路径非常有用。
<img src="http://www.contoso.com/MyApplication/Images/SampleImage.jpg" />
-
如果将在整个站点所用的资源(例如图像或客户端脚本文件)保留在网站根目录下的文件夹中,则网站根目录相对路径非常有用。
下面的示例路径假定 Images 文件夹位于网站根目录下。
<img src="/Images/SampleImage.jpg" />
如果网站的 URL 为 http://www.contoso.com,则此路径将解析为以下形式:
http://www.contoso.com/Images/SampleImage.jpg
-
下面是一个根据当前页面路径解析的相对路径。
<img src="Images/SampleImage.jpg" />
-
解析为当前页面路径对等的相对路径。
<img src="../Images/SampleImage.jpg" />
服务器控件
Images/SampleImage.jpg。
无论承载该用户控件的页面位于何处,结果都是如此。
服务器控件中的绝对和相对路径引用具有以下缺点:
~ 运算符和文件夹来指定基于当前根目录的路径。
~ 运算符。在此示例中,无论页面位于网站中的什么位置,都将从位于 Web 应用程序根目录下的 Images 文件夹中直接读取图像文件。
<asp:image runat="server"
ImageUrl="~/Images/SampleImage.jpg" />
~ 运算符用于客户端元素。
例如,如果 Web 项目以编程方式对文本文件进行读写操作,则必须为用于读取和写入的方法提供该文件的完整物理路径。
MapPath 方法。
注意
|
不应将物理文件路径发送到客户端,因为它们可能会被恶意用户用来获取有关您的应用程序的信息。
|
根据请求属性确定路径
HttpRequest 对象的属性,这些属性帮助您确定应用程序中的资源的路径。
表中列出的示例基于下面的假设:
-
http://www.contoso.com/MyApplication/MyPages/Default.aspx。
-
/MyApplication/MyPages/Default.aspx。
-
C:\inetpub\wwwroot\MyApplication\。
-
该物理路径中包含一个名为 MyPages 的文件夹。
将虚拟路径转换为物理路径
例如,以下代码返回网站根目录的文件路径:
|
请发表评论