我有一个脚本文件。
<script src="~/Scripts/angular.js"></script>
看到路径是~/Script
。但是,如果我输入 ../../
而不是 ~/
,该过程也同样有效。
我的网站 URL 如:https://sample.com/Scripts/angular.js
如果我在 Scripts
之前输入 ../../
,那么它会自动更改以前的 URL(https://sample.com/Scripts/angular.js)
.
What is the url process ? And how can its automatically changed? and please tell about the Different between
./, ../ , ../../ , ~/ ,/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 浏览器不知道如何处理
~
。这只能用于在服务器端组件中预处理的路径。然后,服务器端组件会知道根据应用程序相对于 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
。这是因为浏览器将前者的相对路径转换成了后者的绝对路径。
关于c# - asp.net 中 ./, ../, ../../, ~/on file path(URL) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19272954/