在 asp.net 的文件路径(URL)上的 ./ , ./ , ././ , ~/ 之间不同

本文关键字:上的 之间 URL net asp 文件 路径 | 更新日期: 2023-09-27 18:34:46

我有一个脚本文件。

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

看到路径是~/Script。但是如果我输入../../而不是~/,过程也是一样的。

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

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

什么是网址流程?它如何自动更改?请告诉./, ../ , ../../ , ~/ ,/Scripts ,Scripts之间的区别?

在 asp.net 的文件路径(URL)上的 ./ , ./ , ././ , ~/ 之间不同

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

  • .表示当前路径级别(因此,如果您在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。 这是因为浏览器已将前者的相对路径转换为后者的绝对路径

让我们看看...

 .    = 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 

等等。

顺便说一句,这适用于所有Linux/Unix系统。

相关文章: