以'/'和'〜/'开头的路径有什么区别

时间:2018-09-05 06:28:41

标签: html .net href umbraco7 favicon

我见过this question,但这正在回答其他问题。

今天,我遇到了一个奇怪的问题(至少对我来说)。问题是我的网站上有此代码...

$Copybutton.Add_Click({
$A = $AssetLabel.Text + " " + $AssetText.Text
$E = $ErrorLabel.Text + " " + $ErrorText.Text
$I = $IssueLabel.Text + " " + $IssueText.Text
$TT = $TestTagLabel.Text + " " + $TestTagText.Text
$TS = $TroubleshootLabel.Text + " " + $TroubleshootText.Text
$RW = $ResolutionLabel.Text + " " + $ResolutionText.Text

$TEMPLATE = $A.Trim(), $E.Trim(), $I.Trim(), $TT.Trim(), $TS.Trim(), $RW.Trim()
[Windows.Clipboard]::SetText($TEMPLATE)
}) 

该收藏夹图标几乎在网站的所有页面上返回,但在网站的其中一个页面上没有返回。

我只是想象(什么都没有)删除波浪号,它开始在网站上的所有页面上工作。

<link rel="icon" type="image/png" sizes="16x16" href="~/img/TT_favicon_16px.png" />

这引起了我的好奇心,我想了解两者之间的区别...

1 个答案:

答案 0 :(得分:1)

这是上下文相关的。

比方说当前页面的URL是http://example.com/foo/bar.html

以斜杠开头的绝对路径链接(例如/quux/grault.html)将替换整个路径,而使服务器保持独立:http://example.com/quux/grault.html

相对路径链接(不以斜杠开头,例如fred/baz.html)将附加到路径的最后斜杠:http://example.com/foo/fred/baz.html

关于HTTP及其解释,您的波浪号没什么特别的。它不是完整的URL,也不以斜杠开头,因此它是相对路径URL,在我们的示例中,您将以以下URL结尾:http://example.com/foo/~/img/TT_favicon_16px.png。删除波浪号时,它将成为绝对路径链接,并且您会得到http://example.com/~/img/TT_favicon_16px.png

当您访问这两个链接时,提供的服务取决于您的Web服务器配置。我从未尝试过像http://example.com/~/...http://example.com/foo/~/...这样的链接,但是我怀疑它是否可以工作-大多数Web服务器都未配置为以此类URL进行任何有意义的响应(实际上在我的计算机上,未找到404)。为什么得到响应,如果不检查Web服务器的配置,就无法说。