【问题标题】:Twitter Card fails validation - why is this not picking up any tagsTwitter Card 验证失败 - 为什么它没有获取任何标签
【发布时间】:2019-11-15 18:01:28
【问题描述】:

我创建了一个简单的 html 页面,用于测试通过 twitter 进行的共享。当我在推特卡验证器中测试它时,它说:

INFO:  Page fetched successfully
WARN:  No metatags found

这是完整的网页:

<!doctype html>
<html>
   <head>
      <meta content="text/html; charset=UTF-8" name="Content-Type">
      <meta name="twitter:card"              content="summary_large_image">
      <meta name="twitter:title"             content="Title for this page">
      <meta name="twitter:description"       content="115 character description">
      <meta name="twitter:image"             content="https://urlToAzure/thatends/withjpgfilename.jpg">
      <title>Page Title</title>
   </head>

   <body bgcolor="#CCCCCC">

      <div id="allContentInBody">
         Test page.
      </div>    

   </body>
</html>

这是本网页的公开链接:

https://www.privatebox.com/casa/test.html

我已更新 robots.txt 以允许全部。

编辑 2:我取得了一些进展并获得了更多信息。

我的设置是一个 NGINX 作为 node.js 的反向代理来处理所有流量,没有静态页面。

我设置了一个由 NGINX 本身提供的静态页面。现在 Twitter 卡验证器可以工作了。我看到卡片中的图像和其他信息。

所以问题在于,当 NGINX 以某种方式将请求转发到 node.js 时 - 所服务的页面似乎未能通过 twitter 的卡验证。因为它无法看到元标记。

我确定 NGINX 不会剥离元标记。所以 twitter 尝试做的其他事情我的节点服务器看不到,因此失败了。

任何关于 NGINX 作为 node.js 的反向代理以及如何让 twitter 工作的建议都非常感谢。

【问题讨论】:

  • 如果没有要检查的实时 URL,实际上是不可能的,但您可以按照 Twitter 的故障排除指南 twittercommunity.com/t/…
  • 谢谢@AndyPiper。我会尽快将链接公开。与此同时,我会试试你分享的链接。到目前为止,我可以看出 robots.txt 可能是 Twitterbot 关心的文件,所以我刚刚创建了它。但是,当我再次进行卡片验证时,结果没有变化,并且我没有在我的网站上看到新的 twitterbot 请求 robots.txt。我会花更多时间尝试您分享的链接中的建议并进行报告。

标签: html twitter share


【解决方案1】:

我发现了问题所在。它在节点服务器上,我正在提供文件

 res.write(<contents>)
 res.end(). 

我改成

res.send(<contents>) 

这解决了这个问题。推特卡验证器现在可以看到元标记,并且图像也被拾取。

【讨论】:

    猜你喜欢
    • 2012-08-21
    • 2021-04-06
    • 2020-09-03
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    • 2017-06-08
    • 2021-11-20
    • 2021-03-10
    相关资源
    最近更新 更多