我无法相信这个问题以前从未被问过和回答过。
如何在Meteor中添加og标签供Facebook阅读?将它放在<head>
和</head>
之间不适用于og
标记,但它适用于常规元标记。
是的,让我们现在说,我非常满意这种静态做法。
答案 0 :(得分:5)
使用DocHead package添加Meta标签非常简单。
如果您需要它们是静态的,您可以使用Dochead在Meteor.startup()
方法中添加元标记
即:在客户端代码中,只需将元标记添加到主路径或客户端Meteor.startup()
方法中。
FlowRouter.route('/', {
name: '/',
action: function () {
DocHead.setTitle("X");
DocHead.addMeta({property: 'og:image', content: 'image_URL'});
DocHead.addMeta({property: 'og:image:width', content: '2083'});
DocHead.addMeta({property: 'og:image:height', content: '1091'});
DocHead.addMeta({property: 'og:site_name', content: 'X'});
DocHead.addMeta({property: 'og:title', content: X});
DocHead.addMeta({property: 'og:type', content: 'website'});
DocHead.addMeta({property: 'og:description', content: 'X'});
DocHead.addMeta({property: 'og:keywords', content: 'X'});
DocHead.addMeta({property: 'fb:app_id', content: 'X'});
DocHead.addMeta({property: 'description', content: 'X'});
DocHead.addMeta({property: 'keywords', content: 'X'});
DocHead.addMeta({property: 'twitter:card', content: 'summary'});
DocHead.addMeta({property: 'twitter:url', content: 'X'});
DocHead.addMeta({property: 'twitter:title', content: 'X')});
DocHead.addMeta({property: 'twitter:description', content: 'X'});
BlazeLayout.render('appLayout', {
top: '_header',
main: 'home'
});
}
});
编辑:SSR不是FB抓取工具可以看到您的元标记的唯一方式,使用prerender也可以作为魅力,在这种情况下需要的工作量更少
答案 1 :(得分:3)
从Meteor 1.3中,您可以使用dynamicHead
挂钩与服务器端路由器,例如:
Picker.route('/', (params, req, res, next) => {
req.dynamicHead = (req.dynamicHead || "") + '<meta name="metaname1" content="metacontent1">';
req.dynamicHead += '<meta name="og:title" content="mytitle">';
next();
});
这会在初始html头部添加两个元标记,因此抓取工具不会出现问题。通过使用此方法,您需要的唯一软件包是服务器端路由器,在上面的示例中我使用了Picker。
答案 2 :(得分:0)
假设您使用的是Blaze,则可以使用meteorhacks/meteor-ssr和meteorhacks/picker。它们也适用于动态内容。
您可以按照本指南了解如何使用这两个软件包来解决您的问题:Meteor Server-Side Rendering for SEO Purposes
答案 3 :(得分:0)
我认为在流星应用程序中使用ssr是没有意义的,你会失去meteor给你的许多好处,并且使用prerender.io可能会很昂贵,如果你有一个网页有很多url也是因为meteor 1.4库快速渲染停止在ssr中工作,因此根据我自己的经验使其工作很痛苦。 解决方案可能是在服务器中创建另一个为fb创建元标记的服务,例如,您向Facebook提供URL http://my server.com:8080/id-of-your-post,这将是一个ssr服务,它检查数据库中的所有内容以生成标记并将它们发送到HTML文件中。 现在是时候让Facebook像谷歌和索引基于JavaScript的网站一样。技术正在发生变化,但事实并非如此。