Я сейчас создаю сайт Гэтсби для школьного проекта и наткнулся на что-то, чего я сам не мог понять.
В основном у меня есть несколько файлов уценки.Они содержат поле frontmatter под названием «file» с именем другого файла (например, «test.pdf») в качестве значения.Мне нужно знать общедоступный URL-адрес этих файлов.
Я пытался написать свой запрос следующим образом:
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
}
}
}
}
}
}
Но он всегда интерпретировал поле «файл» как строку, что, я думаю,странно, поскольку я уже проделал ту же процедуру с изображениями, подобными этим:
...
node {
frontmatter {
date(formatString: "MMMM DD, YYYY"),
title,
picture {
childImageSharp {
fluid{
...GatsbyImageSharpFluid
}
}
}
}
}
...
Я уже искал ответ, но самый полезный результат, который я смог найти, был на этом сайте: https://www.gatsbyjs.org/docs/adding-images-fonts-files/
Но я не мог заставить это работать.
Может кто-нибудь сказать мне, что я здесь делаю неправильно?
Конечно, я всегда мог написать второй запрос с помощью 'allFile', а затем сопоставить файл уценки с файлом PDF по абсолютным путям, ноЯ надеюсь, что есть лучшее решение, чем это.