如何在Meteor中添加简单的Facebook og标签?

如何在Meteor中添加简单的Facebook og标签?,meteor,facebook-opengraph,Meteor,Facebook Opengraph,我不敢相信这个问题以前从未被问过和回答过 如何在Meteor中添加og标签以供Facebook阅读?仅仅把它放在和之间对og标记不起作用,但对常规元标记起作用 是的,假设现在我完全满足于静态地执行此操作。假设您使用的是Blaze,您可以使用和。它们也适用于动态内容 关于如何使用这两个包来解决您的问题,您可以遵循以下指南:使用添加元标记非常简单 如果您需要它们是静态的,您可以使用Dochead在Meteor.startup()方法中添加meta标记 i、 e:在客户端代码中,只需将meta标记添加

我不敢相信这个问题以前从未被问过和回答过

如何在Meteor中添加og标签以供Facebook阅读?仅仅把它放在
之间对
og
标记不起作用,但对常规元标记起作用


是的,假设现在我完全满足于静态地执行此操作。

假设您使用的是Blaze,您可以使用和。它们也适用于动态内容


关于如何使用这两个包来解决您的问题,您可以遵循以下指南:

使用添加元标记非常简单

如果您需要它们是静态的,您可以使用Dochead在
Meteor.startup()
方法中添加meta标记

i、 e:在客户端代码中,只需将meta标记添加到主路由中,或者在客户端
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爬虫查看元标记的唯一方式,也可以将works用作一个符咒,在这种情况下需要更少的工作。

来自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();
});
Picker.route(“/”,(参数、请求、恢复、下一步)=>{
req.dynamicHead=(req.dynamicHead | | |“”)+“”;
请求dynamicHead+='';
next();
});

这将向初始html头部添加两个元标记,这样在爬虫程序中就不会出现问题。通过使用这种方法,您需要的唯一软件包是服务器端路由器,在上面的示例中,我已经使用了它。

我认为在meteor应用程序中使用ssr没有意义,您会失去meteor给您带来的许多好处,如果你有一个包含很多url的网页,那么使用prerender.io可能会很昂贵,因为meteor 1.4库fast render在ssr中停止工作,所以根据我自己的经验让它工作起来很痛苦。 一个解决方案可能是在你的服务器上创建另一个服务,为fb创建meta标记,例如,你给Facebook你的帖子的URL server.com:8080/id,这将是一个ssr服务,它检查你的数据库中的所有内容,生成标记并将它们发送到HTML文件中。
是时候让Facebook像谷歌一样为基于JavaScript的网站建立索引了。技术在变化,但事实并非如此。

我不想仅仅因为添加了一个简单的标签而对我的网站做出巨大的改变(可能需要整整一周的工作量并雇佣一名系统管理员)。另外,整个流星点是在客户端渲染,所以。。。不,谢谢。那么祝你好运。。。简单地说,Facebook爬虫程序不运行JS,所以他们不可能看到您的开放图标记。其他不运行JS的爬虫程序可以看到元标记吗?就像一个简单的网络元标签分析器。你能详细说明你的答案吗?再加上一点关于你提供的解决方案的描述?