如何使用 Gatsby 显示 Contentul 图像
How display a Contentul image with Gatsby
我正在尝试显示存储在 Contentful 上的单个图像。这是我获取 url 和图像标题的查询:
contentfulAsset(title: {eq: "kevin"}) {
file {
url
fileName
}
}
我使用了 gatsby-image 插件,但是没有说明知道如何使用这个查询来显示单个图像。
他们只用多个图像和一个节点来解释情况...
{node.image[0].resolutions.src && (
<Img
style={{ margin: 0 }}
resolutions={node.image[0].resolutions}
/>
)}
我的第一个建议是在开发时始终使用 GraphiQL 页面。它让您了解如何在您的组件上使用查询结果。
http://localhost:8000/___graphql
您的查询取决于您希望如何显示图像。
假设您在 Contentful.
的 Asset
内容模型上存储了字段名称为 myImage
的图像
显示 HTML5 <img />
标签
如果您想使用简单的 <img />
标签
您的查询
contentfulAsset(title: { eq: "kevin"}}) {
title
file {
url
}
}
你的组件
// ...
const MyComponent = props => {
const myImage = props.data.contentfulAsset;
return <img src={myImage.file.url} alt={myImage.title} />
}
用gatsby-image插件显示
如果您想利用 gatsby-image
插件,您首先需要知道您是想在查询中使用 resolutions
还是 sizes
子项。
有关详细信息,请参阅 gatsby-image documentation。
然后您可以使用 Fragment 的查询 gatsby-source-contentful
。
见https://www.gatsbyjs.org/packages/gatsby-image/#gatsby-source-contentful
您的查询
假设我们想要在加载时显示具有模糊效果的响应图像,格式为 Webp
:
contentfulAsset(title: { eq: "kevin"}}) {
title
sizes(quality: 100) {
...GatsbyContentfulSizes_withWebp
}
}
Note: by default, the resolutions
and sizes
quality are set to 50. That's why I set it to 100 in this query
你的组件
const MyComponent = props => {
const myImage = props.data.contentfulAsset;
return <Img sizes={myImage.sizes} alt={myImage.title} />
}
Like most of official Gatsby plugins, you can find a very good example in the examples
folder on the GitHub repository:
https://github.com/gatsbyjs/gatsby/tree/master/examples/using-contentful
我正在尝试显示存储在 Contentful 上的单个图像。这是我获取 url 和图像标题的查询:
contentfulAsset(title: {eq: "kevin"}) {
file {
url
fileName
}
}
我使用了 gatsby-image 插件,但是没有说明知道如何使用这个查询来显示单个图像。
他们只用多个图像和一个节点来解释情况...
{node.image[0].resolutions.src && (
<Img
style={{ margin: 0 }}
resolutions={node.image[0].resolutions}
/>
)}
我的第一个建议是在开发时始终使用 GraphiQL 页面。它让您了解如何在您的组件上使用查询结果。
http://localhost:8000/___graphql
您的查询取决于您希望如何显示图像。
假设您在 Contentful.
的Asset
内容模型上存储了字段名称为 myImage
的图像
显示 HTML5 <img />
标签
如果您想使用简单的 <img />
标签
您的查询
contentfulAsset(title: { eq: "kevin"}}) {
title
file {
url
}
}
你的组件
// ...
const MyComponent = props => {
const myImage = props.data.contentfulAsset;
return <img src={myImage.file.url} alt={myImage.title} />
}
用gatsby-image插件显示
如果您想利用 gatsby-image
插件,您首先需要知道您是想在查询中使用 resolutions
还是 sizes
子项。
有关详细信息,请参阅 gatsby-image documentation。
然后您可以使用 Fragment 的查询 gatsby-source-contentful
。
见https://www.gatsbyjs.org/packages/gatsby-image/#gatsby-source-contentful
您的查询
假设我们想要在加载时显示具有模糊效果的响应图像,格式为 Webp
:
contentfulAsset(title: { eq: "kevin"}}) {
title
sizes(quality: 100) {
...GatsbyContentfulSizes_withWebp
}
}
Note: by default, the
resolutions
andsizes
quality are set to 50. That's why I set it to 100 in this query
你的组件
const MyComponent = props => {
const myImage = props.data.contentfulAsset;
return <Img sizes={myImage.sizes} alt={myImage.title} />
}
Like most of official Gatsby plugins, you can find a very good example in the
examples
folder on the GitHub repository:https://github.com/gatsbyjs/gatsby/tree/master/examples/using-contentful