微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 gatsby.config 中为我的网站制作图像链接,例如 https://website.com/image.png?

如何解决如何在 gatsby.config 中为我的网站制作图像链接,例如 https://website.com/image.png?

我想在元标记中为 SEO 添加图像 url。但是如何创建图像链接添加标记?我正在使用盖茨比。我有 src/img/img1.png 图像,现在我想创建这样的图像 URL

https://website.com/src/img/img1.png 

如何在 gatsby-config.js 文件中实现?

解决方法

大多数 Gatsby starter 都带有 SEO component,这样您就可以从头开始构建一个。在内部,它使用 <Helmet> 组件,该组件将包装在其中的所有内容放入 <header> 标记中。所以,给定:

import React from "react"
import PropTypes from "prop-types"
import { Helmet } from "react-helmet"
import { useStaticQuery,graphql } from "gatsby"

function SEO({ description,lang,meta,title,image }) {
  const { site } = useStaticQuery(
    graphql`
      query {
        site {
          siteMetadata {
            title
            description
            author
            image
          }
        }
      }
    `
  )

  const metaDescription = description || site.siteMetadata.description
  const defaultTitle = site.siteMetadata?.title

  return (
    <Helmet
      htmlAttributes={{
        lang,}}
      title={title}
      titleTemplate={defaultTitle ? `%s | ${defaultTitle}` : null}
      meta={[
        {
          name: `description`,content: metaDescription,},{
          property: `og:title`,content: title,{
          property: `og:description`,{
          property: `og:type`,content: `website`,{
          name: `twitter:card`,content: `summary`,{
          name: `twitter:creator`,content: site.siteMetadata?.author || ``,{
          name: `twitter:title`,{
          name: `twitter:description`,].concat(meta)}
    />
  )
}

SEO.defaultProps = {
  lang: `en`,meta: [],description: ``,}

SEO.propTypes = {
  description: PropTypes.string,lang: PropTypes.string,meta: PropTypes.arrayOf(PropTypes.object),title: PropTypes.string.isRequired,}

export default SEO

您可以添加 og:image 属性,例如:

{
  name: `og:image`,content: site.siteMetadata?.image || image,

此时,您可以在 siteMetadata 处使用您的图片(在您的 gatsby-config.js 中设置)或将图片道具传递给您的 SEO 组件:

  siteMetadata: {
    title: `Gatsby Default Starter`,description: `Kick off your next,great Gatsby project with this default starter. This barebones starter ships with the main Gatsby configuration files you might need.`,author: `@gatsbyjs`,image: `https://website.com/src/img/img1.png`
  },

或者:

<SEO image="https://website.com/src/img/img1.png" />

如果您的图像位于 src/img/img1.png,您有两种不同的解决方法可以指向该图像。

siteMetadata: {
    title: `Gatsby Default Starter`,image: `${__dirname}/src/img/img1.png`
  },

然后使用前面提到的方法使用 useStaticQuery 钩子获取图像。

将您的图像移动到 /static folder:静态文件夹内的所有内容都将被克隆到具有相同内部结构的 /public 文件夹。因此,您可以直接使用以下方法引用该图像:

    image: `/img/img1.png`

假设您的静态文件夹结构是 /static/img/img1.png

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。