Twitter Card验证失败-为什么不选择任何标签

时间:2019-07-05 06:06:55

标签: html twitter share

我创建了一个裸露的html页面,用于通过Twitter测试共享。当我在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不会剥离meta标签。因此,twitter尝试执行其他操作,而我的节点服务器看不到,因此失败了。

对于有关将NGINX作为node.js的反向代理以及如何使Twitter工作的任何建议,我们深表感谢。

1 个答案:

答案 0 :(得分:0)

我发现了问题所在。在节点服务器上,我使用的是文件

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

我将其更改为

res.send(<contents>) 

并解决了该问题。现在,twitter卡验证程序可以看到这些元标记,并且图像也会被拾取。