在 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
之间的区别?
这些路径组件是具有特定含义的快捷方式:
-
.
表示当前路径级别(因此,如果您在index.aspx
上并且引用./style.css
那么后者必须与前者位于同一文件夹中( -
..
表示一个路径升级(因此,如果您在/somefolder/index.aspx
上并引用../style.css
那么后者必须位于someFolder
的父文件夹中( -
/
表示根级别(因此/style.css
与http://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系统。