Изображение Гэтсби Не Найдено

#reactjs #gatsby #gatsby-image

#реагирует на #гэтсби #гэтсби-образ

Вопрос:

Поэтому я возюсь с созданием блога markdown и по какой-то причине не могу заставить изображения работать.

Gatsby-config.js

 plugins: [  'gatsby-plugin-image',  'gatsby-plugin-sharp',  'gatsby-transformer-sharp',  {  resolve: 'gatsby-source-filesystem',  options: {  name: 'images',  path: `${__dirname}/src/images/`,  },  __key: 'images',  }, ]  

Изображения хранятся в src/images

blogpost.md

 --- title: New Provider image: ../images/new-provider.jpg imageMeta:  attribution:  attributionLink: featured: false ---  

Вот как я запрашиваю данные

 export const query = graphql`  query PostsByID($slug: String!) {  mdx(slug: { eq: $slug }) {  body  frontmatter {  title  authors  date  featured  image  tags  }  }  } `;  

И вот моя img стихия

 lt;Img alt={title} fluid={image} key={title} /gt;  // I tried this too lt;img alt={title} src={image} /gt;  

Когда страница загружается , я просто вижу свой текст alt, а в консоли я вижу http://localhost:8000/images/new-provider.jpg

Ответ №1:

Чтобы запросить изображение, вам нужны childImageSharp данные (извлеченные из «резких» и «трансформеров» Гэтсби, у вас установлены оба).

Если структура данных и пути заданы правильно, ваш запрос GraphQL должен выглядеть следующим образом:

 export const query = graphql`  query PostsByID($slug: String!) {  mdx(slug: { eq: $slug }) {  body  frontmatter {  title  authors  date  featured  image {  childImageSharp {  fluid(width: 125, height: 125) {  ...GatsbyImageSharpFluid  }  }  }  tags  }  }  } `;  

Там у вас есть соответствующие узлы и свойства, которые должны быть у изображения Гэтсби для визуализации вашего изображения. Тогда вы можете использовать:

 lt;Img alt={title} fluid={image.childImageSharp.fluid} key={title} /gt;  

Если ваш запрос GraphQL не может получить childImageSharp узел (протестируйте его на игровой площадке GraphiQL по адресу localhost:8000/___graphql ), проверьте относительность путей уценки.

Комментарии:

1. Поле «изображение» не должно иметь выбора, так как тип «Строка» не имеет подполей. Это то, что я получаю, когда обновляюсь до этого

2. Эта проблема, с которой я столкнулся, заключается в том, что в одном из моих файлов уценки есть » изображение: «, которое ломало вещи