在代码中我经常会找到带路径的〜/或../但不幸的是我不清楚它们是什么以及它们有什么区别。哪个用于多级目录?
我猜../表示网站或应用程序的域名?
你能指导他们是什么,以及他们有什么不同吗?
答案 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。
两个点(..)指的是比当前文件夹高一级的文件夹。