2016-07-28 81 views
0

我有以下的在我的web.config配置:ImageResizer不會將本地圖像url重定向到azure cdn url?

<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 />

,這是否調整圖像大小,但是當我看在控制檯鉻,我可以看到它是從我的本地文件夾抓住圖像。也許我不明白AzureReader2插件,但我認爲它看到時:

http://localhost/bdgtpd/40420_1.png?width=300,這將從https://az824306.vo.msecnd.net/bdgtpd/40420_1.png獲取圖像並應用轉換。

我在設置我的src對不對?應該是本地url還是cdn url?

好吧,所以我將ImageResizer和AzureReader2一起部署到我的登臺服務器,並將我的映像指向我的登臺服務器。當我將前綴設置爲~/時,該網站投擲了404錯誤,並且有消息,如Blob Not Found。主頁上的所有圖像都在CDN中。當我做前綴~/azure/,它工作正常,所以我不知道這裏發生了什麼。

我一直在尋找的可能架構文檔,但我一對夫婦的事情困惑:

  1. 現在我有一個具有~/azure/前綴路徑設置,所以當我看到在Chrome控制檯一個圖像在網絡選項卡下,我看到啓動程序是我的登臺服務器路徑,但圖像實際上是從cdn中拉出來的。對發生的事情進行簡單的解釋會很棒。
  2. 當我使用clientcache時,如果用戶從cdn請求相同的圖像,圖像是如何傳遞的?我不確定這是如何工作的?

非常感謝

+0

爲什麼您希望ImageResizer在本地副本可用時發出重定向? –

回答

1

如果ImageResizer是在本地主機上運行(例如),如果你的URL應該指向爲localhost。 Azure沒有任何理解ImageResizer命令並執行它們的魔法功能;您必須與安裝了ImageResizer的服務器通話。

您應該使用前綴(例如/ azure /)來配置AzureReader2,儘管看起來您已經發現它有效?