流星中的Facebook OG标签不起作用

时间:2017-05-21 12:55:29

标签: html meteor share opengraph meta

我仅在客户端使用Meteor,并一直在尝试优化开放图元标记。我使用了kadira:dochead并在路由器中输入了以下代码:

Router.route('/', function() {
  setupOg();
  if (isMobile()) {
    this.render('landing_mobile');
    $('body').css("overflow", "visible");
  }
  else {
    this.render('landing');
    $('body').css("overflow", "hidden");
  }
});

function setupOg() {
  var title = { property: "og:title", content: "Blah" };
  var type = { property: "og:type", content: "website" };
  var url = { property: "og:url", content: "https://blah.io" };
  var image = { property: "og:image", content: "http://i63.tinypic.com/2howf4k.png" };
  var siteName = { property: "og:site_name", content: "Blah" };
  var description = { property: "blah blah blah." };

  DocHead.addMeta(title);
  DocHead.addMeta(type);
  DocHead.addMeta(url);
  DocHead.addMeta(image);
  DocHead.addMeta(siteName);
  DocHead.addMeta(description);
}

在浏览器中,在检查HEAD内容时,上面每个属性的内容都为<meta property="og:title" content="Blah" dochead="1">等。

但是,当我查看Facebook Sharing Debugger时,它似乎没有找到任何这些优化,当我尝试在Linkedin上分享时,同样的事情。这是为什么?

注意,我的main.html看起来像这样:

<head>
  <link rel="icon" sizes="16x16 32x32" href="/favicon.ico">
  <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Blah</title>
</head>

1 个答案:

答案 0 :(得分:1)

我可以区分两个原因:

  1. Meteor有客户端渲染,这意味着当Facebook打开分析OG标签的URL时,它看不到任何内容,所以你需要告诉Facebook机器人它需要等到你的页面被加载,看看这个Meteor包:https://atmospherejs.com/meteor/spiderable

  2. 可以缓存该网址的数据。