1

例如utexas.edu,在路径前加上/

<link rel="shortcut icon" href="/sites/default/files/webcentral_favicon_0.ico" type="image/x-icon" />

columbia.edu没有,它只是以文件夹名称或路径开头

<link rel="shortcut icon" href="sites/all/themes/base/columbia2/images/favicon-crown.png" type="image/x-icon" />

这两者都是相对的,但我需要一种方法来区分绝对路径。

如何以编程方式判断何时使用相对路径或绝对路径?

4

5 回答 5

7

URLS 可以像下面这样格式化

  • 绝对:

    http://google.com , https://google.com

  • 方案相关:

    //google.com 链接使用与页面加载相同的方案

    //en.wikipedia.org/apple-touch-icon.png

  • 网站绝对:

    /index.html

  • 页面相关:

    index.html、../index.html、./index.html

我不太明白这个问题,但您似乎对什么是相对/绝对 URL 感到困惑。

如果需要将相对 URL 转换为绝对 URL,可以使用http://code.google.com/p/js-uri/

于 2012-05-26T19:18:27.197 回答
3

如果 href 值中的第一个字符以开头,/则它相对于域的根。如果它以.相同的目录开头....是上面的目录,这些可以堆叠。如果它不是以这些开头而不是//完整的 URL,那么它是相对的。实际上,.并且..也是相对的。

请注意,它也可以以//or开头https?,在这种情况下它将是绝对的。

于 2012-05-26T19:05:12.840 回答
1

您可以简单地检查前导斜杠:

var link = $('link[rel="shortcut icon"]').attr('href');
var start = link.charAt(0); // Returns the leading slash (or not...)
if(start=='/'){
   return 'absolute';
}else{
   return 'relative';
}
于 2012-05-26T19:04:20.373 回答
1

如果您的“站点”目录位于站点的根目录中,则两者是等效的。顺便问一下,您使用的是 Drupal 吗?Drupal 允许您上传网站图标并由它处理路径。

于 2012-05-26T19:04:27.453 回答
1

难道你不能在 URL 的开头寻找一个“http”吗?即使您正在安全地连接,如果它是一个完整的 URL,它也应该以 http 开头。

于 2012-05-26T19:09:11.823 回答