我正在维护一个 MeteorJS Web 应用程序,我需要在主页中添加一些特定的元标记。
我看到项目中有一个head.html,里面有所有信息,包括 现有的 og 元标记,我尝试在那里添加特定的元标记并重新启动服务器。
如果我在主页上右键查看源代码,我可以看到新添加的元标记。
但是,如果我尝试使用 Facebook 调试器来查看 FB Crawler 看到的内容,则机器人看不到新添加的元标记。事实上,机器人看到了一些项目中不存在的额外 Twitter 元标记。
进一步调查,我注意到该项目使用了一个名为
manuelschoebel:ms-seo
:https://github.com/DerMambo/ms-seo
这个库在 Meteor.startup 中初始化如下:
Meteor.startup(function() {
if(Meteor.isServer){
if(Meteor.DEBUG){
robots.addLine('Disallow: /');
}
robots.addLine('Disallow: /admin');
}
if(Meteor.isClient){
// default SEO
return SEO.config({
title: '...',
meta: {
"description": "..."
},
og: {
'image': '....'
}
});
}
现在我猜测这个 SEO 库是机器人在 head.html 中看不到新添加的元标记的原因。
以干净的方式添加新元标记的正确方法是什么?为什么这个 SEO 库不尊重项目中的 head.html?
manuelschoebel:ms-seo
包动态地默认元标记,正如它的意图一样。
如果您只需要
head.html
中的一个全局元标记,则需要删除包中设置的默认设置。或者完全删除包装。
不确定为什么要这样做,因为您可以在包默认值中设置默认值,然后根据包说明动态覆盖特定路由/页面的默认值。