【问题标题】:Adding "~" to the href for a html link将“~”添加到 html 链接的 href
【发布时间】:2014-01-18 07:57:24
【问题描述】:

我的 asp.net mvc razor 视图中有以下链接:-

<a class="brand" href="~/Home/Index/"> <img alt="test" src="~/Content/logo.png" /> </a>

但我不确定 src 和 href 中的符号 ~ 是做什么的?因为删除此符号仍将引用正确的图像和正确的 url?谁能给点建议?

谢谢

【问题讨论】:

    标签: html asp.net-mvc-4 razor


    【解决方案1】:

    http://msdn.microsoft.com/en-us/library/ms178116(v=vs.100).aspx

    ~ 表示您的应用程序的root 目录。

    关注 SO 帖子可能有助于了解更多信息。

    slash(/) vs tilde slash (~/) in style sheet path in asp.net

    在您的情况下,从路径中删除 ~ 将使您的路径成为绝对路径。然后 url 将变为http://example.com/absoulte/path。如果您的项目根目录和 web 根目录相同,则没有区别。您可能还想访问这些链接。

    http://www.boogiejack.com/server_paths.html

    Absolute path & Relative Path

    【讨论】:

    • 删除 '~' 将使您的路径成为站点主机之后的绝对路径。
    • 我认为区别如下,如果我在 IIS 上部署我的 Web 应用程序,比如说 www.example.com/myApp ,那么 / 将返回 www.example.com ,而 ~/ 将返回www.example.com/myApp。所以我应该使用 ~ 因为在生产服务器上我可能会在 www.ourcompany.com/CustomApp/myApp 下部署我的应用程序,所以我需要引用 www.ourcompnay.com/CustomApp/myApp 的链接,而不仅仅是 www.ourcompnay.com。你认为我的观点对吗?
    • 您的 msdn 链接非常有用,但目前我假设 asp.net mvc Razor 视图中的任何代码都将作为服务器端控件处理,而无需明确编写?那为什么〜被认可了,你怎么看?
    • @johnG 是的,它被作为服务器端控件处理。
    【解决方案2】:

    "~" 是 webroot 的符号。如果你有 IIS C:/inetpub/wwwroot/ 是你的 webroot..

    它的存在(起源)来自 UNIX ~,它表示主目录

    【讨论】:

      【解决方案3】:

      ~ 是您的“主”文件夹,在 Unix 上它是例如。 /home/andy(取自 $HOME 变量 - 您可以将其设置为任何其他文件夹)

      【讨论】:

        【解决方案4】:

        ~ 符号表示当前登录的用户在 linux/unix 系统上的主目录。

        【讨论】:

        • 但我在 windows server & IIS 上工作,而不是在 unix server 上工作,所以这对 windows server 有任何意义吗?
        • @johnG 我不确定 - 它在我的 Windows 机器上无法正常工作,但这个答案可能对你有用stackoverflow.com/questions/3077558/…
        猜你喜欢
        • 1970-01-01
        • 2020-11-16
        • 1970-01-01
        • 2012-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-19
        • 2010-11-27
        相关资源
        最近更新 更多