【发布时间】: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。我会花更多时间尝试您分享的链接中的建议并进行报告。