ImageResizer不会将本地图像网址重定向到azure cdn网址?

时间:2016-07-28 17:46:20

标签: imageresizer

我在web.config中配置了以下内容:

<resizer>
    <clientcache minutes="1440" />
    <plugins>

    </plugins>

  <plugins>
    <add name="AzureReader2"
         connectionString="DefaultEndpointsProtocol=https;AccountName=myaccountname;AccountKey=myaccountkey="
         endpoint="https://az824306.vo.msecnd.net/"
         prefix="~/" />
  </plugins>
    </resizer>

我的网站根目录下有一个名为bdgtpd的目录,在那里我有一个图像40420_1.png

我也在azure上找到了这张图片:

https://az824306.vo.msecnd.net/bdgtpd/40420_1.png

最初,我将我的src设置为https://az824306.vo.msecnd.net/bdgtpd/40420_1.png,但当我尝试应用https://az824306.vo.msecnd.net/bdgtpd/40420_1.png?width=300之类的内容时,它无效。

然后我将其设置为:

<img src="~/bdgtpd/40420_1.png?width=300 />

这会调整图像的大小,但是当我查看chrome控制台时,我可以看到它从我的本地文件夹中抓取图像。也许我不理解AzureReader2插件,但是当它看到时我就想到了:

http://localhost/bdgtpd/40420_1.png?width=300,这将从https://az824306.vo.msecnd.net/bdgtpd/40420_1.png获取图片并应用转换。

我将src设置为正确吗?它应该是本地网址还是cdn网址?

好的,所以我将ImageResizer和AzureReader2一起部署到我的登台服务器,我将我的图像指向我的登台服务器。当我将前缀设置为~/时,该网站引发了404错误,并且存在诸如Blob Not Found之类的消息。主页上的所有图像都在CDN中。当我创建前缀~/azure/时,它工作正常,所以我不确定这里发生了什么。

我正在查看can架构文档,但我对以下几点感到困惑:

  1. 现在我有一个设置了~/azure/前缀路径的图像,所以当我查看网络选项卡下的chrome控制台时,我看到启动器是我的登台服务器路径,但图像实际上是拉从cdn。对所发生的事情做一个简单的解释会很棒。
  2. 当我使用clientcache时,如果用户从cdn请求相同的图像,图像是如何传递的?我不确定这是如何运作的?
  3. 非常感谢

1 个答案:

答案 0 :(得分:1)

如果ImageResizer在localhost上运行(例如),那么您的URL应指向localhost。 Azure没有任何神奇的能力来理解ImageResizer命令并执行它们;您必须与安装了ImageResizer的服务器通信。

您应该使用前缀(例如/ azure /)配置AzureReader2,虽然看起来您已经发现这有用吗?