You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js v13中如何使用本地图片作为embed的缩略图?

问题原因

Discord Embed 仅支持 HTTP/HTTPS 协议的公网资源作为缩略图/图片地址,你直接传入本地文件路径,Discord 会自动识别为file协议,因此触发不支持的报错。

解决方案

方案1:本地文件作为消息附件绑定Embed(推荐临时展示场景)

不需要额外配置图床,直接将本地图片作为消息附件一同发送,再通过attachment://协议关联到Embed即可,示例代码如下:

const { AttachmentBuilder, EmbedBuilder } = require('discord.js');
const path = require('path');

// 生成图片绝对路径,避免相对路径寻址错误
const imgPath = path.resolve(__dirname, `images/characters/${interaction.user.id}.png`);
// 构建附件对象,设置自定义文件名(避免特殊字符冲突)
const charImg = new AttachmentBuilder(imgPath, { name: `char-${interaction.user.id}.png` });

// 构建Embed,缩略图地址填写 attachment:// + 刚才设置的附件文件名
const characterEmbed = new EmbedBuilder()
  .setTitle('角色创建成功')
  .setThumbnail(`attachment://char-${interaction.user.id}.png`);

// 发送消息时必须同时传入附件数组
await interaction.reply({
  embeds: [characterEmbed],
  files: [charImg]
});

方案2:上传到公网存储获取HTTPS链接(推荐长期复用场景)

如果生成的角色图片需要多次使用,可以把生成的图片上传到你自己的公网存储服务,拿到可直接访问的HTTPS链接后,直接传入setThumbnail方法即可,不需要再每次发送附件。

注意事项
  • 附件文件名不要包含空格、特殊符号,避免路径绑定失效
  • 若使用相对路径,要确保执行代码的工作目录和图片存放目录的相对关系正确,优先使用path.resolve生成绝对路径更稳妥

内容的提问来源于stack exchange,提问作者Tesohh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:42:03