我已经建立了一个NEXT JS网站,我正试图插入元标签,这将使我的文章,例如LinkedIn和FB看起来不错和定制。下面是我使用并插入到我的index.js网站的代码:
export default function Home() {
return (
<>
<Layout>
<Head>
<meta property="og:type" content="website" />
<meta property="og:title" content="Business- und Karrierecoaching" />
<meta
property="og:description"
content="Beratung und Begleitung in jeder Phase Ihres Berufslebens!"
/>
<meta
property="og:image"
content="https://anjavojta.com/wp-content/uploads/2023/10/title_photo_blue.png"
/>
<meta property="og:url" content="https://marliestheresbrunner.at" />
</Head>
<Hero />
</Layout>
</>
);
}
字符串
下面是我的文件夹结构:
Folder Structure
尽管如此,标签并没有被刮除,如果我使用https://www.linkedin.com/post-inspector/,它甚至告诉我,“没有og:图像被发现”。
显示的输出(例如在LinkedIn帖子上)总是来自我的Hero组件的代码,这很奇怪。我没有在我的Hero组件中插入任何元标记。下面是我的Hero组件的代码(在文件夹“components”中-请参阅上图中的文件夹结构):
export default function Hero() {
return (
<>
<Head>
<title>Business- und Karrierecoaching</title>
</Head>
<div css={pageContainer}>
<div css={heroContainer}>
<div css={heroHeadingContainer}>
Business- <br />
und Karrierecoaching
</div>
<div css={heroSubheadingContainerItalic}>
<i>Einstieg – Aufstieg – Orientierung – Veränderung – Neustart</i>
</div>
<div css={heroSubheadingContainer}>
Beratung und Begleitung in jeder Phase <br />
Ihres Berufslebens!
</div>
<Link href="/offer/" css={buttonStylesBlue}>
Mein Angebot
</Link>
<Link href="/contact" css={buttonStylesLight}>
Infogespräch
</Link>
<div css={signatureStyles}>
<Image
src={'/images/signature.png'}
alt="Unterschrift von Marlies Theres Brunner"
width={397}
height={120}
/>
</div>
</div>
</div>
</>
);
}
型
非常感谢你的帮助!
Anja
以下是我到目前为止尝试过的方法(也没有成功):
- 将元标记放入my_app. js & Hero组件Head中
- 更改了图像URL
1条答案
按热度按时间gudnpqoy1#
问题:
标签没有被刮,如果我使用https://www.linkedin.com/post-inspector/,它甚至告诉我,“没有og:图像被发现”。
可能原因:
头部标签放置
显示的输出(例如在LinkedIn帖子上)总是来自我的Hero组件的代码,这很奇怪。Hero组件的标题将应用于它导入的页面(如果该页面没有标题)
解决方案:
将该Head标签放置在_app.js中,这将使它们在主页上可用,以及没有任何Head标签的页面。
您也可以在
_document.js
中放置Head标签,但不能在其中保留title标签 (阅读下面给出的1 st链接)。此元数据在所有页面上都可用(附加)。如果您有通用的元数据,那么将其放在
_document.js
中&更改的元数据(标题)将其保留在自己的页面/组件中。这是我做的一个小的示例代码:(复制粘贴并在其中运行)
**结果:(我构建并测试了元数据的存在,它们存在)
说明:
Head
标记的Hero component
。Head
标签的页面nomd
(或者任何类型的元数据,只有内容)md
,它有自己的Head
标记Hero component
的英雄页面,它从组件中获取元数据,NextJS版本:
14.0.1
文件夹结构:
字符串
_document.js:
projectName\pages\_document.js
型
_app.js
projectName\pages\_app.js
:型
index.js
projectName\pages\index.js
(我添加了链接,可以轻松地在页面之间导航,以查看标题和元数据的变化):型
index.js(英雄页面)
projectName\pages\hero\index.js
:型
英雄组件
projectName\components\Hero.js
:型
md页面
projectName\pages\md\index.js
:型
nomd page
projectName\pages\nomd\index.js
:型
输出:
Elements Tab
打开,http://localhost:3000/), Title = Homepage (title from _app.js
)和Head
标记中的元数据http://localhost:3000/hero
)时,标题=英雄人物的标题和来自英雄人物的Head
标签中的元数据http://localhost:3000/md
)时,标题= MD页面和来自其自身Head
标记的元数据http://localhost:3000/nomd
)时,Title = Homepage(title from _app.js) & metadata in
Head` tag from _app.js<meta name="keywords" content="MY, WEBSITE, KEYWORDS">
存在于所有页面上,我将其放置在_document.js
中<title>
不应该在_document.js中使用<Head>
https://nextjs.org/docs/messages/no-document-title***元数据:**https:nextjs.org/docs/pages/building-your-application/optimizing#metadata
*头部:https://nextjs.org/docs/pages/api-reference/components/head