[英]Using Gatsby.js, how do I add a route-specific og:image meta tag?
[英]How do I work with the 'all' collections to use with the File System Route API in Gatsby.js?
我希望使用 Gatsby.js 的文件系統路由 API從 collections 在私有 GraphQL ZDB97442387143ACE1463 中生成頁面似乎文件系統路由 API 總是使用“全部”收集請求來生成這些( allFile
、 allSite
、 allPost
等)。
因為我的數據來自單獨的 API,所以在 Gatsby 的架構中沒有等效的“全部”集合,並且我的數據也在gatsby-source-graphql
插件的字段內命名空間。
是否可以為 Gatsby 定義我自己的“全部”收藏? 我想將allFacilities
別名為my-remote-api { facilities }
,但我不確定這是否可能。
如果沒有,還有其他方法嗎?
文件系統路由 API 是由 Gatsby ( ^2.26.0
) 開發的新品牌,用於動態創建頁面,刪除gatsby-node.js
的 GraphQL 查詢並使用/pages
文件夾中的語法符號 ( {}
, []
, ()
等)。
根據您的用例,您需要通過在“all”關鍵字前面加上前綴來推斷和修改架構(可能使用gatsby-node-helpers package
中的createNodeFactory
和createNodeHelpers
,在不確切知道您的數據架構和結構的情況下,很難猜測示例代碼),但想法是:
const nodeHelpers = createNodeHelpers({
typePrefix: 'Shopify',
createNodeId,
createContentDigest,
})
}
默認情況下,這將作為“all”關鍵字的前綴,創建一個allShopify
節點,可由文件系統路由 API 查詢和使用。
另一方面,有“舊”方式:在gatsby-node.js
中使用 GraphQL ,使用createPage
API 動態創建頁面,使用上下文傳遞數據(通常是唯一標識符),並在模板中使用另一個按該唯一值過濾的查詢以獲取您的數據(即:在gatsby-node.js
文件中,您查詢所有帖子並使用 slug 值為每個帖子動態創建頁面(使用createPage
API)。然后,您通過使用上下文的標識符(slug 或標題),並在您的模板中(不是/pages
作為文件系統路由 API)通過此唯一值創建過濾查詢以獲取您的帖子數據)。
如果您無法使用幫助程序自定義節點,則第二種方法可能符合您的要求。 在這里,您有Gatsby 文檔提供的關於該部分的指南。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.