我正在使用NodeJS和BotBuilder开发聊天机器人。我有文件聊天机器人.jpg存储在一个名为image的文件夹中。它位于根目录的正下方。我能够在网络浏览器中显示图像(使用 Kudu 查找 URL(,如下所示:
https://mysite.scm.azurewebsites.net/api/vfs/site/wwwroot/images/chatbot.jpg
如果我删除 URL 中的 .scm 元素,则无法再显示图像。
更奇怪的是,如果我在机器人代码中使用上述 URL,图像不会显示。
var welcomeCard = new builder.HeroCard(session)
.title("This is the new")
.subtitle('Virtual Assistant')
.images([
new builder.CardImage(session)
.url("http://mysite.scm.azurewebsites.net/api/vfs/site/wwwroot/images/chatbot.jpg")
alt("Virtual Assistant")
]);
session.send(new builder.Message(session)
.addAttachment(welcomeCard));
我的问题是,如何找出存储在 Azure 应用服务中的图像的常规 URL,以便我可以在代码中使用它?
在公共网络上,URL应该是 https://mysite.azurewebsites.net/images/chatbot.jpg
wwwroot 文件夹是应用服务提供的根文件夹。
代码不能只是 scm URL,因为该 URL 要求你登录到 Azure 门户;它是一个管理员 URL。
要实现您的目标,您需要将 Restify 服务器配置为提供静态文件。
示例 Restify 配置(添加到机器人代码中(:
server.get(//images/?.*/, restify.serveStatic({
directory: './images'
}));