问题
I am currently learning Gatsby.js and GraphQL as a supplementary technology and got stuck with querying. I want to query all images from a folder, map trough them and display them in a react component as a grid. I am using gatsby-source-filesystem but can't figure out, how to address specifically that folder and get all images from it.
My plugin set up for source-filesystem looks like this.
{
resolve: `gatsby-source-filesystem`,
options: {
path: `${__dirname}/src/posts`,
name: 'posts',
},
},
{
resolve: `gatsby-source-filesystem`,
options: {
name: `images`,
path: `${__dirname}/src/assets/images`,
},
},
{
resolve: `gatsby-source-filesystem`,
options: {
name: `photos`,
path: `${__dirname}/src/assets/photos`,
},
},
I have my images in src/assets/photos
Thanks for any help!
回答1:
You can select specific folders using filters in graphql.
Try something like this:
query AssetsPhotos {
allFile(filter: {extension: {regex: "/(jpg)|(jpeg)|(png)/"}, relativeDirectory: {eq: "photos"}}) {
edges {
node {
id
name
}
}
}
}
Where eq: photos
should be changed to the relative directory result you get for the files you want to target when you go to GraphiQL and run a query on allFile
.
来源:https://stackoverflow.com/questions/51349801/querying-all-images-in-folder-using-graphql