使用 angularjs 设置元标记时不显示元标记

Metatags aren't displayed when set them with angularjs

Angularjs 中的元标记有一个问题。 在我的 html 文件中,我的元标记 content 属性 设置如下 {{ meta.siteName }},并且在每条路线上我都以编程方式设置这些标签。一切都很好,它正确地设置了这些标签,但是当我试图通过 skype/slack 等将 link 发送到某个页面时,它显示 {{ meta.siteName }}{{ meta.description }} 而不是他们的实际值。抱歉我的语言不好。

这很可能是因为 Slack 和 Skype 机器人不执行 Javascript。因此,您的 angular 代码永远不会有机会替换模板中的 {{ meta.siteName }}{{ meta.description }}

要使其正常工作,您必须在服务器端设置它们或使用预渲染(例如使用 https://prerender.io/)。

其他不执行 Javascript 的机器人也会出现此问题,例如 Facebook 和 Twitter 机器人。此外,尚不清楚 googlebot 执行了多少 Javascript,因此您的网站可能存在 SEO 问题。