【发布时间】:2021-12-05 21:21:41
【问题描述】:
我创建了一个组件 SeoHeader 来处理 NextJs 项目中元标记的创建
import React from 'react';
import Head from 'next/head';
import { useRouter } from 'next/dist/client/router';
const SeoHeader = ({ title, description, image }) => {
const router = useRouter();
return (
<Head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta charSet="utf-8" />
<meta name="description" content={description} key="description" />
<meta property="og:type" content="website" />
<meta property="og:title" content={title} key="og:title" />
<meta property="og:description" content={description} key="og:description" />
<meta property="og:image" content={image} key="og:image" />
<meta property="og:url" content={`https://www.energici.fr${router?.asPath}`} key="og:url" />
<meta name="twitter:card" content={description} key="twitter:card" />
<meta property="og:site_name" content="Energici, l'info bien être" key="og:site_name" />
<meta
property="twitter:url"
content={`https://www.energici.fr${router?.asPath}`}
key="twitter:url"
/>
<meta
name="twitter:image:alt"
content="Energici la plateforme du bien être"
key="twitter:image:alt"
/>
<meta property="twitter:domain" content="energici.fr" />
<title>{title}</title>
</Head>
);
};
export default SeoHeader;
如果我在 _app.js 上导入这个组件,一切都会顺利。我可以在 html dom 中看到元标记,如果我共享链接预览卡就可以了。 但如果我分享另一页,例如这个:https://www.energici.fr/decouvrons-la-kinesiologie 我可以在 html dom 中看到正确的元标记,但是如果我在 facebook 中分享链接,或者我在这里测试它https://metatags.io/ 我什么都看不到,就像没有元标记一样。
有什么想法吗?
【问题讨论】:
-
请注意,<meta> 标签不使用也不需要结束斜线,并且在任何 HTML 规范中都没有。