Gatsby和Directus:从表行获取引用文件

时间:2018-10-10 19:31:14

标签: gatsby directus

我有一个具有“用户”表的Directus实例。每个用户行都有一个与之关联的图像。我正在尝试使用Gatsby在个人资料页面上显示每个用户的图像,但在将每个用户与其在Gatsby中的图像相关联时遇到了麻烦。

我正在使用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列表中分配给该文件的ID相对应,但是这些ID似乎完全不同且不相关:


{
    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知道的ID是9e34b...,而Gatsby知道的ID是dc43c...。当gatsby-source-directus从我的Directus服务器下载图像时,似乎正在创建Gatsby ID。我不确定自己是在做错什么,还是插件无法正常工作。

我希望有人可以帮助我:a)使它们匹配,或者b)直接从用户对象中查询图像的publicURL,而不是进行第二次图像查询并尝试过滤图像。

0 个答案:

没有答案