Гэтсби и Директус: получить ссылочный файл из строки таблицы
У меня есть экземпляр Directus с таблицей "пользователи". С каждой строкой пользователя связано изображение. Я пытаюсь использовать Gatsby для отображения изображения каждого пользователя на странице профиля, но мне сложно связать каждого пользователя с его изображением в Gatsby.
Я использую https://github.com/iKonrad/gatsby-source-directus и Gatsby v2. У меня нет проблем с получением списка всех моих пользователей, используя этот запрос GraphQL:
{
allDirectusUser {
edges {
node {
firstName,
lastName,
username,
gender
}
}
}
}
Когда я добавляю изображение в запрос GraphQL, я могу запросить следующие (полезные) поля:
{
allDirectusUser {
edges {
node {
firstName,
lastName,
username,
gender,
image {
data {
name,
url
}
}
}
}
}
}
// Output
{
"data": {
"allDirectusUser": {
"edges": [{
"node": {
"firstName": "jk",
"lastName": "joshing",
"username": "jkjustjoshing",
"gender": "m",
"image": {
"data": {
"name": "9e34b416be5e81aca5e1806662f555af.jpg",
"url": "/storage/uploads/9e34b416be5e81aca5e1806662f555af.jpg"
}
}
}
}]
}
}
}
Я надеялся, что имя или 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
непосредственно от объекта пользователя, вместо того, чтобы делать второй запрос изображения и пытаться фильтровать изображения.