Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html <;链路相关=备用>;在浏览器中_Html_Http_Rest_Hateoas - Fatal编程技术网

Html <;链路相关=备用>;在浏览器中

Html <;链路相关=备用>;在浏览器中,html,http,rest,hateoas,Html,Http,Rest,Hateoas,我对浏览器中的行为感到有点困惑,我希望得到一些澄清。让我们使用以下代码进行说明: <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="a.css" type="text/css" title="Main Stylesheet"> <link rel="alternate styleshee

我对浏览器中
的行为感到有点困惑,我希望得到一些澄清。让我们使用以下代码进行说明:

<!DOCTYPE html>
<html lang="en">
    <head>
        <link rel="stylesheet" href="a.css" type="text/css" 
              title="Main Stylesheet">
        <link rel="alternate stylesheet" href="b.css" type="text/css" 
              title="Alternative Stylesheet">
        <link rel="alternate" href="fr.pdf" hreflang="fr" type="application/pdf" 
              title="Alternative document in French">
    </head>
    <body>
    </body>
</html>

当此代码在现代浏览器(例如Firefox v27.01)中运行时,浏览器解析上述HTML文档,然后下载样式表、a.css和b.css。前者用于将样式应用于文档。但是,b.css可通过所述浏览器的“视图>页面样式”菜单获得。因此,很明显Firefox中的解析器能够识别“替代”样式表,在本例中决定下载它

可以看出,解析这些
的结果基本上是引用相应文档的超链接。在样式表的情况下,浏览器足够聪明,可以下载它。但是,对于我们示例中的另一个备选文档(fr.pdf),Firefox似乎没有下载它,如果它链接了它,它在任何地方都不可见。我在Chrome(v.33.0.1750.117)、Opera(v.19.0.1326.63)、IE(v.10.0.9200.16798)中进行了测试,可以观察到相同的情况(即没有与fr.pdf链接的可见工件)。所以,所有这些现代浏览器都是这样的,看起来我误解了“替代”关系的含义:)有人能给我解释一下它们的用途吗?我的信念是,以RESTful方式,用户代理应该能够(超)链接所有
以浏览该web

提前谢谢

元素确实标识了与当前文档相关的外部文档。而
rel
属性指定了该关系的性质。在
rel=“alternate stylesheet”
的特定情况下,(某些)浏览器可以对链接执行特定的操作。特别是,Firefox和Opera为用户提供了从应用程序菜单中选择此“备用”样式表的机会。例如,请参见屏幕截图

为了应用该样式表,浏览器需要下载它


在更一般的
rel=“alternate”
(不是样式表)情况下,浏览器将不知道与相关链接相关的任何有用信息。因此,就浏览器而言,没有必要下载它。

我不确定浏览器是否可以读取PDF作为样式表,这是该代码似乎建议/尝试实现的目标<代码>只加载文件,因此您需要CSS来确定何时显示备用文件。@谢谢您的及时回复,但是pdf链接只有“备用”关系。它不与样式表一起使用。b、 css具有“备用样式表”关系。也许是因为我的缩进不好,你把这些行混在一起了:)我想既然你已经声明了
lang=fr
,你就需要试着将浏览器的语言设置为fr来加载网站。你试过了吗?是的,但是将浏览器的首选语言改为fr只会产生设置“接受语言”的预期效果请求HTML文档时发送到FR,服务器端可以对此做出反应。为了实验起见,我试过了,没有任何变化。@TylerH再次感谢您的回答:)应该是hreflang,它描述了href值的语言。请参阅问题中的链接。或者,请检查此项,谢谢您的回复。然而,在上面的例子中,mime类型是指定的,现代浏览器知道如何处理这个问题。因此,他们至少可以将其超链接以进行导航(例如,在菜单中的某个地方,就像他们使用CSS所做的那样,您已经在上面显示过)。所以,我不同意你回答中的部分,他们不知道如何处理相关链接。斯蒂芬,你可能是对的。当我有更多的时间时,我会检查Firefox解析器的源代码并在这里报告。希望有人能尽快回答我们的问题。