〜/和../之间的区别

时间:2013-08-06 16:13:54

标签: html asp.net url

我想知道是否有人能够详细解释我之间的区别:

~/Images/delete.png
../Images/delete.png

什么 - 我认为 - 我知道(根本不确定):

  • ../和〜/在服务器端理解。 (C#)
  • ../在客户端理解但是〜/不是。 (html和javascript)
  • ../和〜/表示父目录
  • 当我在服务器端使用〜/时,看起来它在客户端转换为../。

我试图找到一个解决方案,但是 - 我认为 - 谷歌在搜索栏中不考虑'〜/'和'../'。

PS:有人可能已经问过这个问题了。我做了很多研究,但我没有找到明确的答案。如果您认为有人这样做,请转介我。

谢谢。

编辑:

感谢您的回答。

因此,〜被转换为项目根目录的路径。

Ex:localhost:8080 / main / images / delete.png

~/images/delete.png ---- > ../main/images/delete.png ---- > localhost:8080/main/images/delete.png

../images/delete.png ---- > main/images/delete.png

因此,第一个网址的客户端代码为: ../main / images / delete.png

4 个答案:

答案 0 :(得分:6)

在ASP.NET中,~project root operator不是父文件夹)。 ASP将其替换为项目根目录的路径。它只适用于服务器端,因为~运算符对ASP.NET是特殊的,但对浏览器不是。

../表示父目录,可以在任何地方使用。

答案 1 :(得分:1)

~/在服务器上作为app根目录进行解析。这是引用资源的好方法,因为无论应用程序安装在何处,URL都是正确的。在开发服务器上,根目录可能是http://localhost:8080/myproject/,部署时可能是http://mydomain.com/

../是一个相对URL,指向当前目录的父级。

答案 2 :(得分:0)

~在网址中没有特殊含义。这只是一个角色。它可能对在服务器上解释它的东西有特殊意义。例如ASP.NET将其映射到项目根目录(在输出页面时,而不是从服务器读取读取URL时),并且Apache通常配置为在文件系统上映射~foo/home/foo/public_html/

../表示“上升/ s级别”并由客户解决。

答案 3 :(得分:0)

'/folder' =站点 - 根相对路径

'folder' =针对当前页面路径解析的相对路径

'../folder/...'

=被解析为当前页面路径的父级的相对路径

'~'是asp.net特定的根运算符,它解析为当前应用程序的根。 您将要在引用资源的asp.net服务器控件中使用此运算符而不是“/”。 〜运算符仅在服务器控件和服务器代码中被识别。您不能将〜运算符用于客户端元素。

阅读:http://msdn.microsoft.com/en-us/library/ms178116%28v=vs.100%29.aspx