【问题标题】:The difference between ~/ and ../~/ 和 ../ 的区别
【发布时间】:2013-08-07 18:18:55
【问题描述】:

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

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

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

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

我试图找到解决方案,但是 --我认为-- google 不会在搜索栏中考虑 '~/' 和 '../'。

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

谢谢。

编辑:

感谢您的回答。

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

例如: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

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

【问题讨论】:

    标签: html asp.net url


    【解决方案1】:

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

    ../ 表示“上一级/s”,由客户端解析。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 感谢您的回答!这帮助我理解了这个概念! :)
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        '../folder/...'
        

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

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

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

        【讨论】:

          猜你喜欢
          • 2011-10-20
          • 2020-01-23
          • 1970-01-01
          • 2014-10-09
          • 2010-12-21
          • 2011-05-11
          • 2014-01-24
          • 2014-02-16
          • 1970-01-01
          相关资源
          最近更新 更多