0

在代码中,我经常发现 ~/ 或 ../ 带有路径,但不幸的是,我不清楚这些是什么以及有什么区别。哪一个与多级目录一起使用?

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

你能指导一下它们是什么,它们有什么不同吗?

4

3 回答 3

6

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

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

于 2013-02-03T22:30:01.690 回答
5

有两种路径:

  • 常规路径
  • 虚拟路径

当您只是使用/../使用相对于 IIS 的常规路径时 - Web 服务器 - 网站 URL。也就是说,/myfile.txt如果您的应用程序托管在名为mydir. 在这种情况下,/myfile.txt将以这样的 URL 结尾: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 类方法和服务器控件

于 2013-02-03T22:37:11.303 回答
4

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

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

于 2013-02-03T22:29:36.650 回答