Skip to content

高级主题

构建复杂 Farcaster 框架的高级主题。

使初始框架图像动态化

当框架在广播中被分享时,其元数据通常会被抓取并缓存,以便无需额外加载即可渲染到用户信息流中。这意味着初始框架设置的任何 URL 都将始终被渲染。

要使初始图像动态化,您需要:

  • 在静态 URL 上提供动态图像
  • 设置适当的缓存头

例如,假设您想构建一个框架,初始框架显示 ETH 的当前价格。对于初始框架,您需要设置一个静态图像 URL,如https://example.xyz/eth-price.png。当对此端点发出 GET 请求时:

  • 服务器从缓存中获取最新的 ETH 价格
  • 使用Vercel OG等工具渲染图像并返回
  • 设置以下头:Cache-Control: public, immutable, no-transform, max-age=60

我们建议设置非零的max-age,以便图像可以被缓存并从 CDN 提供服务,否则用户在动态图像生成和加载时会在信息流中看到灰色图像。具体时间取决于您的应用,但应选择在保持图像合理新鲜的前提下尽可能长的时间。

在静态 URL 生成动态图像时避免缓存错误图像

如果您有一个生成动态图像的静态 URL,并且在无法生成图像时使用备用图像,您应在Cache-Control头中设置max-age=0,以免被缓存。

例如,假设您在/img/eth-price生成一个动态图像,显示 ETH 价格的 24 小时图表。通常您希望此图像缓存 5 分钟。但是,如果 ETH 价格数据不可用且您渲染了备用图像,您不希望请求被缓存,以便在后续请求中重试。

数据持久化

Vercel KVCloudflare Workers KV是为框架服务器添加简单持久层的便捷选择。