【问题标题】:Can't establish the URL of Bot Builder files stored in Azure App Service无法建立存储在 Azure 应用服务中的 Bot Builder 文件的 URL
【发布时间】:2017-06-17 04:23:20
【问题描述】:

我正在使用 NodeJS 和 BotBuilder 开发一个聊天机器人。我将文件 chatbot.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 App Service 中的图像的常规 URL,以便在我的代码中使用它?

【问题讨论】:

    标签: node.js azure botframework


    【解决方案1】:

    来自公共网络,URL 应该是https://mysite.azurewebsites.net/images/chatbot.jpg

    wwwroot 文件夹是应用服务提供的根文件夹。

    您的代码不能只是 scm URL,因为该 URL 要求您登录到 Azure 门户;这是一个管理员网址。

    【讨论】:

    • 试过了。我在此 URL 上得到以下信息:{"code":"NotAuthorized","message":"/images/chatbot.jpg"}:mysite.azurewebsites.net/images/chatbot.jpg。这听起来像是一个身份验证问题。但是,我可以访问该机器人,并且它在 Messenger 上运行良好。所以我不确定下一步该怎么做。
    • 这意味着您在某处开启了身份验证;它应该是正确的 URL,只是不允许匿名用户访问它。
    • 刚刚签入了portal.azure。在设置/身份验证中,应用服务身份验证设置为关闭。是的,它不是“我的网站”。
    • 嗯,有不止一种方法可以进行身份​​验证...您的节点服务器设置为向匿名用户提供静态文件?或者您是否配置了 IIS 代理来提供静态资产?看来您需要回到设置中的基础知识...
    • 好问题。我正在使用 azure 门户并设置节点 JS 应用程序服务,所以我可以看到身份验证设置的唯一地方是我之前提到的那些。如果我将 URL 更改为外部站点,它就可以正常工作。
    【解决方案2】:

    为了实现您的目标,您需要将您的 Restify 服务器配置为 serve static files

    示例 Restify 配置(添加到您的机器人代码):

    server.get(/\/images\/?.*/, restify.serveStatic({
      directory: './images'
    }));
    

    【讨论】:

    • 尝试了上述方法。还是行不通。还尝试了目录:__dirname,再次没有运气。
    • 奇怪的是,当我将以下代码上传到 Azure 应用服务时,我第一次运行机器人时,图像显示。连续运行不显示图像。 server.get(/\/?.*/, restify.serveStatic({ directory: __dirname, default: 'index.html', match: /^((?!app.js).)*$/ source })) ;
    猜你喜欢
    • 2020-10-12
    • 2019-10-15
    • 1970-01-01
    • 2019-02-04
    • 2018-10-14
    • 2017-12-21
    • 1970-01-01
    • 2016-10-15
    • 2023-03-25
    相关资源
    最近更新 更多