asp.net中文件路径(URL)上的./,.. /,.. / .. /,〜/之间有所不同

时间:2013-10-09 13:06:59

标签: c# asp.net url browser path

我有一个脚本文件。

<script src="~/Scripts/angular.js"></script>

请参阅路径~/Script。但是,如果我输入../../而不是~/,那么此过程也是一样的。

我的网站网址如:https://sample.com/Scripts/angular.js

如果我在../../之前输入了Scripts,那么它会自动更改以前的网址(https://sample.com/Scripts/angular.js)

  

什么是网址流程?它怎么能自动改变?请告诉我./, ../ , ../../ , ~/ ,/Scripts ,Scripts之间的差异?

2 个答案:

答案 0 :(得分:19)

这些路径组件是具有特定含义的快捷方式:

  • .表示当前路径级别(因此,如果您在index.aspx上并且引用./style.css,那么后者必须与前者位于同一文件夹中)
  • ..表示一个路径级别上升(因此,如果您在/somefolder/index.aspx上并且引用../style.css,那么后者必须位于父文件夹 someFolder
  • /表示根级别(因此/style.csshttp://www.mysite.com/style.css相同)
  • ASP.NET中的
  • ~表示服务器端应用程序根目录(因此~/index.aspx将转换为应用程序根目录中index.aspx文件的URL)

这里有很多事情需要注意:

  • 服务器路径与客户端路径之间存在差异。例如,从Web浏览器的角度来看,没有“应用程序根”。网络浏览器不知道如何处理~。这只能在服务器端组件中预处理的路径中使用。然后,服务器端组件将根据应用程序相对于Web服务器的当前位置将其转换为客户端可见路径。
  • 父路径说明符(..)没有限制。根的父级被视为根。因此,如果您在http://www.mysite.com/someFolder/index.aspx上,并且引用../../../../style.css,则会转到http://www.mysite.com/style.css
  • 浏览器还会为您翻译路径。这是“页面源”和“DOM”之间的差异之一。您的网页来源可能会引用../somePage.aspx,但是当您使用鼠标将鼠标悬停在其上时,浏览器会指示它是http://www.mysite.com/somePage.aspx。这是因为浏览器已将前者的相对路径转换为后者的绝对路径

答案 1 :(得分:-1)

让我们看看......

 .    = this directory
 ..   = the parent directory
 ../  = the parent directory
 ~/   = the user's home directory or the application's, in ASP
 /    = the root directory

 ../../ = the parent's parent directory 

等等。

BTW,这适用于所有Linux / Unix系统。