“〜/”和“../”之间有什么区别?

时间:2013-02-03 22:28:10

标签: c# asp.net .net vb.net

在代码中我经常会找到带路径的〜/或../但不幸的是我不清楚它们是什么以及它们有什么区别。哪个用于多级目录?

我猜../表示网站或应用程序的域名?

你能指导他们是什么,以及他们有什么不同吗?

3 个答案:

答案 0 :(得分:6)

~/经常被称为辅助函数,例如<%= ResolveUrl() %>。它指的是网站的根,而../只是指父目录。两者都是相对的网址。

我们举一个例子。假设您的网站托管在名为MyApplication的虚拟目录中。当您使用<%= ResolveUrl("~/foo/bar") %>时,它会生成/MyApplication/foo/bar作为输出网址,这无论在哪个WebForm位置。

答案 1 :(得分:5)

有两种路径:

  • 常规路径
  • 虚拟路径

当您使用/../时,您使用的是相对于IIS的常规路径 - 网络服务器 - 网站网址。也就是说,如果您的应用程序托管在名为/myfile.txt的虚拟目录中,则mydir会出错。在这种情况下,/myfile.txt将以如下网址结尾:http://www.mydomain.com/myfile.txt,而您期望http://www.mydomain.com/mydir/myfile.txt

因此,ASP.NET为您提供了提供虚拟路径的机会。所有这些都以~字符开头。 ~字符指定已解析的URI相对于IIS应用程序。采用上述期望http://www.mydomain.com/mydir/myfile.txt的示例,右侧虚拟路径为~/myfile.txt

请注意,非服务器控件中不允许使用虚拟路径。这种路径用于选定数量的ASP.NET类方法和服务器控件

答案 2 :(得分:3)

波浪号(〜)指的是应用程序根目录。在ASP中,代字号用于HyperLinks或Page.ResolveURL。

两个点(..)指的是比当前文件夹高一级的文件夹。