Javascript Gatsby.js-allMarkdownRemark中的GraphQL查询pdf文件
我目前正在为一个学校项目建设一个盖茨比网站,遇到了一些我自己都搞不懂的事情 基本上我有一些降价文件。它们包含一个名为“file”的frontmatter字段,其值为另一个文件的名称(例如:“test.pdf”)。 我需要知道这些文件的公共URL 我试着这样写我的查询:Javascript Gatsby.js-allMarkdownRemark中的GraphQL查询pdf文件,javascript,reactjs,graphql,gatsby,Javascript,Reactjs,Graphql,Gatsby,我目前正在为一个学校项目建设一个盖茨比网站,遇到了一些我自己都搞不懂的事情 基本上我有一些降价文件。它们包含一个名为“file”的frontmatter字段,其值为另一个文件的名称(例如:“test.pdf”)。 我需要知道这些文件的公共URL 我试着这样写我的查询: querysitequery{ 出版物:AllMarkdown备注( 筛选器:{fileAbsolutePath:{regex:/publications/“}}, 排序:{order:DESC,字段:[frontmatter\u
querysitequery{
出版物:AllMarkdown备注(
筛选器:{fileAbsolutePath:{regex:/publications/“}},
排序:{order:DESC,字段:[frontmatter\uuuuuu\u date]},
){
边缘{
节点{
前沿物质{
日期(格式字符串:“MMMM DD,YYYY”),
标题
文件{
公共URL
}
}
}
}
}
}
但它总是将字段“file”解释为字符串,我认为这很奇怪,因为我已经对这样的图像执行了相同的过程:
。。。
节点{
前沿物质{
日期(格式字符串:“MMMM DD,YYYY”),
标题
图画{
childImageSharp{
流质{
…盖茨比磁流体
}
}
}
}
}
...
我已经搜索了答案,但我能找到的最有用的结果是在这个网站上:
但我不能让它工作
有人能告诉我我做错了什么吗
当然,我可以使用“allFile”编写第二个查询,然后通过绝对路径将标记文件与pdf文件匹配,但我希望有更好的解决方案。这是您想要使用
映射的时候,但对于不是标记或JSON文件的任何内容,都没有很好的文档记录
gatsby config.js-映射
//注意:frontmatter`file`和属性`base`必须具有唯一的值
//也就是说,如果映射'base',则不允许任何文件具有相同的名称`
映射:{
'MarkdownRemark.frontmatter.file':'file.base',
}
因此,现在您可以成功地执行以下操作:
query SiteQuery{
publications: allMarkdownRemark(
filter: { fileAbsolutePath: {regex : "/publications/"} }
sort: { order: DESC, fields: [frontmatter___date] }
){
edges {
node {
frontmatter {
date(formatString: "MMMM DD, YYYY")
title
file {
publicURL
}
}
}
}
}
}