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

use*_*510 0 .net c# vb.net asp.net

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

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

你能指导他们是什么,以及他们是如何不同的?

Dar*_*rov 6

~/通常用辅助函数来表示<%= ResolveUrl() %>,例如.它指的是网站的根,而../只是指父目录.两者都是相对的网址.

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


Mat*_*zer 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类方法和服务器控件中使用了这种路径