2

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

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

什么——我认为——我知道(完全不确定):

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

我试图找到一个解决方案,但是——我认为——谷歌在搜索栏中没有考虑“~/”和“../”。

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

谢谢你。

编辑 :

谢谢您的回答。

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

例如:本地主机: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

因此,第一个 url 的客户端代码将是: ../main/images/ delete.png

4

4 回答 4

6

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

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

于 2013-08-06T16:17:40.900 回答
1

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

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

于 2013-08-06T16:23:16.563 回答
0

'/folder'= 站点根目录的相对路径

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

'../folder/...'

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

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

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

于 2013-08-06T16:26:12.463 回答
0

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

../意思是“上一级/s”,由客户解决。

于 2013-08-06T16:16:57.760 回答