如何使用ms-seo包在Meteor中获得更好的SEO?

Yea*_*ats 4 javascript meteor

这个软件包,ms-seo在各方面肯定都很棒,但遗憾的是,当他撰写自述文件时,作者忘记了像我这样的新手.无论如何,作为一个从未对任何编码社区做出任何贡献的人,我确信我的批评是值得的,所以让我们继续前进.

这个特别的作者提供了一个博客文章和一个包,这是一个有趣的阅读,但大多数直接与自述文件相矛盾,所以我失去了尝试配置设置.

博客文章指出:

您只需要在以下架构中添加seo数据:

SeoCollection.insert({
    "route_name" : "home", // the name of the Iron-Router route
    "title" : "Title of your home site",
    "meta" : [
        {"description": "This is the description of the document"},
        // add more meta tags
    ],
    "og" : [
        { "image": "http://your-domain.com/images/image.jpg" },
        // add more open graph tags
    ]
})
Run Code Online (Sandbox Code Playgroud)

我的猜测是包SeoCollection为你创建了集合,所以我只需要填充一些种子数据,一个插入我的应用程序的每个路径.凉!

哦,等等......自述文件说的不同:

您可以设置一些标准值.如果没有其他可用的话,将设置此项.

Meteor.startup(function() {
    if (Meteor.isClient) {
        return SEO.config({
            title: 'Manuel Schoebel - MVP Development',
            meta: {
                'description': 'Manuel Schoebel develops Minimal Viable Producs (MVP) for Startups'
            },
            og: {
                'image': 'http://manuel-schoebel.com/images/authors/manuel-schoebel.jpg' 
           }
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

他是否意味着如果我不提供任何配置,那么这些实际值将被设置,即我的网站将被称为"Manuel Schoebel - MVP开发"?这个押韵与我必须制作的插曲有什么关系?为什么这个在客户端呢?为什么没有路线名称?

自述的推移,并提供一些示例代码,一个SeoCollection.update似乎做同样的事情!所以我应该使用update,不是insert吗?我到底在哪里做到这一点?

但后来他谈到onAfterHooks在Iron Router中使用动态数据.那么我应该使用它而不是以上所有的一些吗?

我真的很想对此有所澄清.安装包后我需要做什么?

Kri*_*tig 6

我从来没有使用过这个软件包,但这是我从阅读文档/代码中学到的东西:

SEO.config

该包能够为不同的路由呈现不同的标头标签.因此,当您插入新的ms-seo配置时,通常会传递路由.但您也可以配置默认配置.这就是整个Meteor.startup SEO.config企业的意义所在.

SeoCollection.update

update文档中的调用将选项upsert设置为true.此选项使查询更新数据库条目(如果存在),如果不存在则将其插入.这使得事情变得更容易,而这就是ms-seo的状态在你做的时候保持不变meteor reset.他最后一次更新README,他没有更新博客文章.

所以我建议你使用记录的update声明.甚至,使用upsert

SeoCollection.upsert(
  {
    route_name: 'aboutMe'
  },
  {
    $set: {
      route_name: 'aboutMe',
      title: 'About - Manuel Schoebel',
      meta: {
        'description': 'Manuel Schoebel is an experienced web developer and startup founder. He develops but also consults startups about internet topics.'
      },
      og: {
        'title': 'About - Manuel Schoebel',
        'image': 'http://manuel-schoebel.com/images/authors/manuel-schoebel.jpg'
      }
    }
  }
);
Run Code Online (Sandbox Code Playgroud)

配置可能是在客户端完成的,以便更新它.

SEO.set

最后使用onAfterAction钩子,这样您就不必手动指定当前路径.你可以在他的代码中看到它.该SEO.set呼叫基本上与upsert检查指定的路由检查相同iron:router.该SEO.set功能不会将设置保存到集合中.这意味着,每次网站加载时都必须执行它.

摘要

所以,如果你使用铁:路由器绝对使用onAfterActionSEO.set.当然,您仍然希望使用该SEO.config功能来设置默认设置.

希望有所帮助.