我见过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" />
这引起了我的好奇心,我想了解两者之间的区别...
答案 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服务器的配置,就无法说。