Microsoft bot框架:如何定义解决方案本身中存在的图像路径

Ela*_*ran 7 bots

我已经将图像存储在项目本身内部,现在我想在英雄卡上显示图像,所以我已经提到了相对路径.但是图像没有出现....

 List<CardImage> cardImages = new List<CardImage>();
 cardImages.Add(new CardImage(url: "~/duck-on-a-rock.jpg", alt:"image1"));
Run Code Online (Sandbox Code Playgroud)

但是当我从某个网站引用图像并在页面上提到相同的路径时,图像就会出现.

 List<CardImage> cardImages = new List<CardImage>();
 cardImages.Add(new CardImage(url: "http://www.publicdomainpictures.net/pictures/30000/t2/duck-on-a-rock.jpg", alt:"image1"));
Run Code Online (Sandbox Code Playgroud)

是否无法将图像保留在项目文件夹中?

Par*_*ich 2

这是一个非常老的问题,但谷歌我还是把它带到了这里。我遇到的解决方案是为本地资源创建一个数据 URL。在 Node.js 中:

  const imageData = fs.readFileSync(path.join(__dirname, '../resources/logo.png'));
  const base64Image = Buffer.from(imageData).toString('base64');

  const inlinePng = {
      name: 'logo.png',
      contentType: 'image/png',
      contentUrl: `data:image/png;base64,${ base64Image }`
  };
Run Code Online (Sandbox Code Playgroud)

使用 svg,您可以跳过 Base64 编码:

const svgData = fs.readFileSync(path.join(__dirname, './resources/logo.svg'));

const inlineSvg = {
  name: 'logo',
  contentType: 'image/svg',
  contentUrl: `data:image/svg+xml;utf8,${ svgData }`,
};
Run Code Online (Sandbox Code Playgroud)

请参阅Microsoft 文档以获取参考和 C# 示例。