我创建了一个裸露的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工作的任何建议,我们深表感谢。
答案 0 :(得分:0)
我发现了问题所在。在节点服务器上,我使用的是文件
res.write(<contents>)
res.end().
我将其更改为
res.send(<contents>)
并解决了该问题。现在,twitter卡验证程序可以看到这些元标记,并且图像也会被拾取。