У меня есть экземпляр Directus с таблицей «пользователи».С каждой строкой пользователя связано изображение.Я пытаюсь использовать Gatsby для отображения изображения каждого пользователя на странице профиля, но у меня возникают проблемы с сопоставлением каждого пользователя с его изображением в Gatsby.
Я использую gatsby-source-directus и Gatsby v2.У меня нет проблем с получением списка всех моих пользователей с помощью этого запроса GraphQL:
{
allDirectusUser {
edges {
node {
firstName,
lastName,
username,
gender
}
}
}
}
Когда я добавляю изображение в запрос GraphQL, это (полезные) поля, которые я могу запросить:
{
allDirectusUser {
edges {
node {
firstName,
lastName,
username,
gender,
<b>image {
data {
name,
url
}
}
</b>}
}
}
}
// Output
{
"data": {
"allDirectusUser": {
"edges": [{
"node": {
"firstName": "jk",
"lastName": "joshing",
"username": "jkjustjoshing",
"gender": "m",
<b>"image": {
"data": {
"name": "9e34b416be5e81aca5e1806662f555af.jpg",
"url": "/storage/uploads/9e34b416be5e81aca5e1806662f555af.jpg"
}
}</b>
}
}]
}
}
}
Я надеялся, что имя изображения или URL будет соответствовать идентификатору, назначенному для файла в списке allFiles
GraphQL, но, похоже, идентификаторы совершенно разные и не связаны:
{
allFiles {
edges {
node {
absolutePath,
base,
name,
publicURL,
id
}
}
}
}
// Output
{
"data": {
"allFiles": {
"edges": [{
"node": {
"absolutePath": "/Users/jkjustjoshing/Documents/gatsbyProject/.cache/gatsby-source-filesystem/dc43c94c4bcc309ba39fc0e723ef14af.jpg",
"base": "dc43c94c4bcc309ba39fc0e723ef14af.jpg",
"name": "dc43c94c4bcc309ba39fc0e723ef14af",
"publicURL": "/static/dc43c94c4bcc309ba39fc0e723ef14af-adecf30d9a17f3d98651e7476178da68.jpg",
"id": "6ede8075-f33e-5273-8dcd-8d41f3b365f5"
}
}]
}
}
}
Идентификатор, который знает Directus, 9e34b...
, а идентификатор, который знает Гэтсби, dc43c...
.Похоже, что Gatsby ID создается, когда gatsby-source-directus
загружает изображение с моего сервера Directus.Я не уверен, что делаю что-то не так, или плагин работает неправильно.
Я надеюсь, что кто-нибудь может мне помочь: а) заставить их соответствовать или б) запроситьpublicURL
изображения непосредственно от объекта пользователя, вместо того, чтобы делать второй запрос изображения и пытаться фильтровать изображения.