如何在聚合物中设置动态Meta标签和Open Graph标签?

时间:2015-12-07 21:36:36

标签: javascript jquery polymer polymer-1.0

我有一个聚合物节点网站,我一直在研究,无法弄清楚如何包含动态元标记和Open Graph标记。 Jquery将无法工作,也不会使用聚合物api添加节点,因为它将在页面加载后添加所有标签,facebook将无法读取标签。 Google抓取工具会渲染页面,但最好能在标题中设置说明。

<html>
  <head>
    <meta name="description" content="description goes here" />
    <meta property="og:title" content="title"/>
  </head>
  <body>
    <group-pages id="grouppages" is="dom-bind"></group-pages>
  </body>
</html>

grouppages设置数据并使用服务根据网址填充页面,但我无法找到的是如何根据页面更改元标记。

有人有什么想法吗?

一个想法是获取信息服务器端并将其发送到聚合物,但我仍然不确定节点和聚合物之间是否可能。

2 个答案:

答案 0 :(得分:2)

这绝对是一个开放的问题,它涉及在客户端生成元标记的任何方式,无论是Polymer还是其他任何前端代码。

只有爬虫执行JS时才能克服。 2014年5月Google started doing so。另一方面,据我所知,Facebook尚未朝这个方向发展。

您可能需要查看其他两个答案以获得完整的图片:

截至今天,唯一100%可靠的方法是服务器拦截抓取工具,并在发送响应之前专门为其呈现内容。这也是isomorphic JavaScript的结果。已经有一些有用的工具可以支持这些任务,比如Prerender

希望这有帮助!干杯

答案 1 :(得分:2)

如果您使用Firebase托管Polymer应用程序,则可以使用Firebase http trigger函数预渲染index.html文件。

exports.host = functions.https.onRequest((req, res) => {
  // replace og-tags in the index.html file and return it
});

有关详细信息,请参阅this post