c# - asp.net 中 ./, ../, ../../, ~/on file path(URL) 之间的区别

标签 c# asp.net url browser path

我有一个脚本文件。

<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.csshttp://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/

相关文章:

javascript - 通过将 HTML 元素附加到 URL 来定位页面的特定部分

c# - 从 C# 将表类型对象作为输入参数传递给 Oracle 中的存储过程

c# - 我可以防止类被非抽象对象继承吗?

asp.net - 如何禁用 .aspx 页面的 ViewState?

c# - Webmatrix - 将变量从 cshtml 页面传递到 aspx 页面

regex - 在 bash 中解码 URL

c# - 用破坏的六边形替换六边形

c# - 如何使用 mysql 在 C# 中的 visual studio 2015 中使用 Crystal 报表?

asp.net - .Net Web 应用架构性能

android - Flutter-Android Studio-无法正确识别url_launcher导入