【发布时间】:2014-02-03 15:43:35
【问题描述】:
全部,
在 HTML 中,我的理解是,以 // 开头的 url(例如 //www.google.com)指的是一个无协议的 url,应该在与提供页面的方案相同的方案中请求.
但是,下面的 c# 代码失败了
var uri = new Uri("//www.google.com", UriKind.RelativeOrAbsolute);
Assert.IsTrue(uri.IsAbsoluteUri);
我在这里遗漏了什么吗?目前我正在滚动自己的正则表达式来确定 URI 是否是绝对的:
return Regex.IsMatch(url, @"^(https?:)?//")
【问题讨论】:
-
它实际上称为协议-相对 URL。
-
谢谢 - 我会更新..
-
严格来说,它与所服务实体的 URI 无关,而是与基本 URI 相关。这确实默认为您获得相对 URI 引用的实体的 URI,但
xml:base、HTML 的<base/>元素和其他机制可以覆盖它。