如何在 Gatsby Source Contentful 中检索资产? (不是图片)

How to retrieve asset in Gatsby Source Contentful? (not images)

我正在尝试使用 Contentful CMS 源使用 Gatsby 构建网站。到目前为止,我已经构建了页面、使用了图像并且一切都非常清楚。但现在,我正在尝试使用链接到我的一种内容类型的资产,但我找不到 URL 来下载它或其他使用方式。我所说的资产是 GPX 文件,而不是图像。虽然有关图像的 Gatsby 文档详尽无遗,但很少提及其他类型的文件。

我的目标是在我的一个 React 组件中获取 GPX 文件,解析它并将其显示在地图上。但首先我需要下载它。所以这是我的问题,我如何使用 Gatsby 做到这一点?

我检查了 GraphiQL,但没有一个 属性 returns 实际工作 URL。

屏幕截图中选择的 url 字段 returns 损坏 url(非 https)。

更新 - 将 downloadLocal 设置为 true

我将 downloadLocal 设置为真,运行 gatsby build 然后 运行 gatsby develop。但是当我 运行 在 graphiQL 中查询时,我仍然收到相同的 url。

{
    "gpxPath": {
        "file": {
          "url": "//assets.ctfassets.net/xxxxxxxxxxxx/59R3KRl13Ppvwh2EGDspjh/41274fe0385d640faa4a092ef3a94804/Lac_de_la_Sassi_re.gpx"
        }
    }
}

您是否尝试启用 downloadLocal 配置选项?

这将在本地下载资产,并应提供有效的 URL 用于静态分发。

{
  resolve: `gatsby-source-contentful`,
  options: {
    spaceId: `your_space_id`,
    accessToken: process.env.CONTENTFUL_ACCESS_TOKEN,
    downloadLocal: true,
  },
},

只要您的站点部署到 HTTPS URL,它就应该是一个有效的路由。