“~/”和“./”有什么区别

本文关键字:区别 什么 | 更新日期: 2023-09-27 17:57:12

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

我想。。/表示站点或应用程序的域?

您能否指导它们是什么,以及它们有何不同?

“~/”和“./”有什么区别

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

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

有两种路径:

  • 常规路径
  • 虚拟路径

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

波浪号 (~) 表示应用程序根目录。在ASP中,波浪号用于超链接或Page.ResolveURL。

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