/和../和~/有什么区别?

来源:互联网 发布:数控编程外螺纹指令 编辑:程序博客网 时间:2024/04/28 06:20

Q:请问/和../和~/有什么区别,另外所谓的网站根目录和ASP。NET程序根目录具体指的是啥呀


A:/网站的根目录,就是域名后面开始,如http://aa.com/
../当前目录的上一级目录
~/asp.net应用程序的根目录,可以是http://aa.com/,也可以是虚拟目录开始的,如http://aa.com/xx/
~/在服务器端写代阿很有用


在引用资源的 ASP.NET 服务器控件中,可以使用绝对路径或相对路径,这一点与客户端元素一样。如果使用相对路径,则相对于页面、用户控件或包含该控件的主题的路径进行解析。例如,假设 Controls 文件夹中包含一个用户控件。该用户控件包含一个 Image Web 服务器控件,该服务器控件的 ImageUrl 属性设置为以下路径:

Images/SampleImage.jpg

该用户控件运行时,路径将解析为以下形式:

/Controls/Images/SampleImage.jpg

无论承载用户控件的页面位置如何,都是如此。

服务器控件中的绝对和相对路径引用具有以下缺点:

绝对路径在应用程序之间是不可移植的。如果移动绝对路径指向的应用程序,则链接将会中断。

如果将资源或页面移动到不同的文件夹,可能很难维护采用客户端元素样式的相对路径。

为克服这些缺点,ASP.NET 启用了 Web 应用程序根目录运算符 (~),在服务器控件中指定路径时,可以使用该运算符。ASP.NET 会将 ~ 运算符解析为当前应用程序的根目录。可以结合使用 ~ 运算符和文件夹来指定基于当前根目录的路径。下面的示例演示使用 Image 服务器控件时用于指定图像的根目录相对路径的 ~ 运算符:

  复制代码
<asp:image runat="server" id="Image1"
  ImageUrl="~/Images/SampleImage.jpg" />
 

在该示例中,图像文件将从 Web 应用程序根目录下的 Images 文件夹中直接读取,无论该页面位于网站的什么位置。

注意
~ 运算符只能为服务器控件识别,并且位于服务器代码中。不能将 ~ 运算符用于客户端元素。
可以在服务器控件中的任何与路径有关的属性中使用 ~ 运算符。 

原创粉丝点击