【问题标题】:Link to RSS/Atom feed, relative, doesn't work in Firefox指向 RSS/Atom 提要的相对链接在 Firefox 中不起作用
【发布时间】:2011-05-25 05:44:17
【问题描述】:

我有一个奇怪的问题。我生成了一个 HTML 页面,托管在http://www.x.com/stuff,其中包含

<head>
  <link type="application/atom+xml" rel="alternate" href="/stuff/feed"/>
  ..
</head>

结果是:

  • 在 IE7 中一切正常 - 您可以单击浏览器中的提要图标并显示提要
  • 在 Firefox 中,查看源代码,单击链接的 /stuff/feed,您会看到提要的源代码,因此可以按预期工作
  • 在 Firefox 中,查看页面(非源),然后单击地址栏中的提要图标,我收到无法检索 URL feed://http//www.x.com/stuff/feed 的错误

所以问题是,它将feed:// 附加到URL 的前面,然后在http 之后取出冒号:。我知道feed: 无论如何都是 HTTP,所以添加它也许不是什么大问题。

但无论如何,事实是,Firefox 从我的&lt;link&gt; 标签生成的 URL 不起作用。

我考虑过将 URL 设为绝对,但我没有找到任何证据表明这些 URL 必须是绝对的,我也不明白为什么会这样。由于各种原因,在我的代码中生成绝对 URL 会很不方便。如有必要,我可以这样做,但我更愿意在使我的代码混乱之前看到有必要的证据(例如规范或 Mozilla 错误报告)

你怎么看?有谁知道 URL 应该是绝对的任何证据?还是我做错了什么?这似乎是一个简单/明显的标签,不会出错,但我无法让它工作。

【问题讨论】:

标签: html firefox rss feed atom-feed


【解决方案1】:

我遇到了同样的问题。 IT 是由我的网络流量正在通过的工作代理服务器引起的。 Firefox 将“http://server.tld/feed-url”更改为“feed://http//server.tld/feed-url”。由于我的所有 http 流量都经过的网络代理无法识别“feed://”协议,因此它将我的请求视为无效而拒绝。

到目前为止,我发现的唯一解决方法是在 Firefox 中手动配置代理设置。现在,您可能已经让系统自动配置了它们。如果您知道您的代理信息,则可以改为手动配置它。这样做只是为了 http/https/ftp 允许我访问提要,因为 Firefox 然后直接处理提要:// URL(最终它像我想要的那样重定向到 http://)。

要直接配置代理设置,您需要转到编辑 -> 首选项 -> 高级 -> 设置(“连接”旁边)。使用手动设置。您必须确定您的系统已经在使用的代理设置。

请注意,缺少的冒号(Piet 提到)不是您网站上的错误。这是 Firefox 订阅正在进行的转换。另请注意,这不是 Julien 建议的由相对 URL 引起的问题。 Firefox 将其转换为绝对 URL,但随后删除 http:// 协议前缀中的冒号,以便将其附加到“feed://”(更改协议并提供原始绝对 URL 作为“URL”对于新的“feed”协议)。

【讨论】:

    【解决方案2】:

    这是 Firefox 或 FoxyProxy 之类的错误。

    我不仅在 stackoverflow 上看到了完全相同的问题(在 Firefox 中查看问题,点击提要图标,看到同样奇怪的 feed://http//... URL)而且在 http://news.google.com/ 上也看到了

    我已经写信给在一家完全不相关的公司工作的朋友,他在那些标准的互联网页面上看到他的 FireFox 出现同样的错误。

    &lt;link&gt; 标签中使用绝对 URL 没有帮助;例如,news.google.com 使用绝对 URL。

    事实证明,如果您进入 Firefox 中的代理设置,如果您选择“使用系统代理设置”,就会发生这种情况;如果您手动输入代理详细信息或不使用代理,则不会出现此问题。

    这似乎是这里的错误http://foxyproxy.mozdev.org/drupal/content/problem-with-feed-and-proxy

    【讨论】:

    • 我有这个bug,但我没有使用FoxyProxy(但我使用的是固定代理),所以可能是Firefox的bug。
    【解决方案3】:

    无效的基本 URL 包含拼写错误的事实是可疑的:如果某些东西意外覆盖它,就会发生这种情况。

    您的页面是否包含错误的base elementbase 元素(和 RFC 1808)在所有浏览器中的支持并不完全相同,因此如果您的文档中有类似的内容(请注意缺少的 :):

    <base href="http//www.x.com/">
    

    那么浏览器可能会不一致地使用它来解析相对引用,具体取决于元素放置、渲染模式、错误回退行为或其他因素。

    如果文档不包含 base 元素,请检查您是否通过其他方式(例如 Content-Location HTTP 标头)意外引入了错误的基本 URL。

    【讨论】:

    • 感谢您的想法,我没有想到任何这些,我会检查它们!
    【解决方案4】:

    您能否提供指向您网站或特定 HTML 页面的链接以查看此内容?因为 SO 上这个问题的 ATOM-feed 与您尝试链接 ATOM-feed 的方式完全相同:

     <link rel="alternate" type="application/atom+xml" title="Feed for question 'Link to RSS/Atom feed, relative, doesn&#39;t work in Firefox'" href="/feeds/question/4438794">
    

    这适用于我的Firefox/3.6.13

    【讨论】:

    • 感谢您的信息,很高兴知道它原则上可以工作。 (我会尽快让有问题的页面可用,可惜目前它只在我们防火墙后面的开发机器上。)
    • 我的 Firefox (3.5.16) 在此页面上出现“feed://http/...” URL 失败。 Firefox 4 也坏了。
    • @Raphink:您的浏览器已达到 EOL:Firefox 3.5.x 的安全性和稳定性更新将持续到 2010 年 8 月。强烈建议所有用户升级到 Firefox 3.6。
    • 嗯,也许事情已经改变了。当我查看the feed of this question 时,entry/link/@href 的所有值都是绝对
    【解决方案5】:

    放一个绝对网址,这是元素的好习惯,不会破坏浏览器...

    【讨论】:

    • 我不确定这是否真的很好,我的意思是,您是否建议对页面中的每个元素(包括 &lt;a href=...&gt; 链接)使用绝对 URL?
    • 它不适用于 https RSS 提要。它以“feed://https//”结束
    猜你喜欢
    • 2018-08-19
    • 2013-01-24
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多