我有一个具有“用户”表的 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 知道9e34b...
的 ID 是 , Gatsby 知道的 ID 是dc43c...
。gatsby-source-directus
从我的 Directus 服务器下载图像时,似乎正在创建 Gatsby ID 。我不确定我是否做错了什么,或者插件是否无法正常工作。
我希望有人可以帮助我a)让这些匹配,或者b)publicURL
直接从用户对象查询图像,而不是进行第二个图像查询并尝试过滤图像。