【问题标题】:How does a browser resolves/constructs an absolute url from a relative one浏览器如何从相对 URL 解析/构造绝对 URL
【发布时间】:2019-03-14 23:39:07
【问题描述】:

在浏览器地址栏中显示 url 的网站:www.something.com/abc/def/ghi。 当您查看任何网站的源代码时,锚标记具有相对的 href,例如 href="../jkl/mno" 当您点击链接时,浏览器如何确定它必须加载www.something.com/abc/jkl/mno?

例如:浏览https://alibabagroup.com/en/global/home --> 展开投资者关系 --> 检查任何链接的来源。例如a href="../ir/home" --> 单击链接 --> 浏览器通过替换 "global/home" 部分将其解析为“https://www.alibabagroup.com/en/ir/home”

另外,如果有人知道如何在 C 语言中以编程方式实现这一点,那将是一个很大的帮助?一些功能如下:

string ToAbsoluteUrl("https://alibabagroup.com/en/global/home", "../ir/home")
{
    // Outputs as "https://alibabagroup.com/en/ir/home"
}

【问题讨论】:

    标签: c# url browser relative-path


    【解决方案1】:
    string ToAbsoluteUrl(params string[] pathParts)
    {
        return new Uri(Path.Combine(pathParts)).ToString();
    }
    

    这样使用:

    ToAbsoluteUrl("https://alibabagroup.com/en/global/home", "../ir/home");
    

    【讨论】:

    • 感谢朋友的帮助,但由于 Path.GetFullPath 是 System.IO 的,它不能用于组合 url 路径。目前它给出异常“不支持给定路径的格式”。你可以在这里查看:dotnetfiddle.net/kXphgX
    • @arjun-tech 我修正了我的答案
    【解决方案2】:

    这可以通过关注question here来实现:

    static string ToAbsoluteUrl(string a, string b)
    {   
        return new Uri(new Uri(a), b).ToString();
    }
    

    【讨论】:

      猜你喜欢
      • 2018-07-18
      • 2018-06-28
      • 2018-08-14
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 2011-09-09
      相关资源
      最近更新 更多