“~/”和“./”有什么区别
本文关键字:区别 什么 | 更新日期: 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。
两个点 (..) 表示比当前文件夹高一级的文件夹。