【发布时间】:2020-04-23 09:41:56
【问题描述】:
我正在尝试让社交卡出现在我的网站上。我正在使用 graphQL 从内容中提取数据,这将返回我的图像 - 例如,我将获取 backgroundImage.fluid 并将其放入 gatsby 中,它工作正常。
但是,当我尝试将此图像放入 SEO 卡时,它并没有按预期工作,也没有任何显示 - 我认为是因为元描述无法将其识别为图像,因为 Gatsby 图像正在做一些聪明的事情。
这是 SEO 组件
function SEO({ description, lang, meta, title, mainImage, pathname , defaultImage}) {
const { site } = useStaticQuery(
graphql`
query {
site {
siteMetadata {
title
description
author
siteUrl
defaultImage
}
}
}
`
)
const metaDescription = description || site.siteMetadata.description
return (
<Helmet
htmlAttributes={{
lang,
}}
title={title}
titleTemplate={`%s | ${site.siteMetadata.title}`}
meta={[
{
name: `description`,
content: metaDescription,
},
{
property: `og:title`,
content: title,
},
{
property: `og:image`,
content: mainImage,
},
{
property: `og:description`,
content: metaDescription,
},
{
property: `og:type`,
content: `website`,
},
{
name: `twitter:card`,
content: `summary`,
},
{
name: `twitter:creator`,
content: site.siteMetadata.author,
},
{
name: `twitter:title`,
content: title,
},
{
name: `twitter:image`,
content: mainImage,
},
{
name: `twitter:description`,
content: metaDescription,
},
]
.concat(meta)}
/>
)}
这是组件
<SEO
title={name}
mainImage={mainImage.fluid.src}
/>
这将在使用 gatsby-image 的页面上工作
<Img fluid={mainImage.fluid} imgStyle={{
objectFit: "contain",
}} />
有人有什么想法吗?
【问题讨论】:
-
您希望图像显示在哪里?
SEO图像应该是图像的绝对路径。 -
@ksav 希望它在您在 twitter / whatsapp 等上分享内容时显示出来
标签: javascript reactjs gatsby