2016-11-04 54 views
0

我們有問題通過Azure的應用服務運行imageresizer這反過來指向BLOB存儲試圖服務器的.js和.html5文件。服務的.js和HTML5及其他文件類型在Azure上與Imageresizer

這工作: http://devimageresizecdnbypass.reiwa.net//bannerads/10688-0/test-image.jpg

這不: http://devimageresizecdnbypass.reiwa.net/bannerads/10688-0/js_ex3.js

直接鏈接到團塊存儲從而繞過imageresizer作品。

我在web.config重寫添加的圖像文件中「文件夾」。

<rule name="bannerads"> 
    <match url="^bannerads/([_0-9a-z-.]+)/([_ ,0-9a-z-.]+)" /> 
    <action type="Rewrite" url="/imagefiles/bannerads/{R:1}/{ToLower:{R:2}}" /> 
</rule> 

和除其他條目,以下 -

<staticContent> 
    <remove fileExtension=".pdf" /> 
    <mimeMap fileExtension=".pdf" mimeType="application/pdf" /> 
    <remove fileExtension=".js" /> 
    <mimeMap fileExtension=".js" mimeType="application/x-javascript" />  
</staticContent> 

與微軟的診斷,他們認爲imageresizer沒有預未決的BLOB URL請求在請求非jpg文件時傳回給Azure。

目前,我們在內部部署的Windows 2008 R2/IIS箱運行imageresizer和這些文件提供精美。

回答

0

ImageResizer不是作爲靜態文件代理而設計的。 儘管存在黑客行爲,但它不會像性能一樣,並且缺乏許多您可能期望的靜態文件代理功能。

如果可能的話,我們會建議直接鏈接到團塊存儲或CDN端點的靜態文件來代替。

如果你想嘗試有ImageResizer代理這些文件,你需要配置存儲提供商以允許。

https://imageresizing.net/docs/v4/plugins/blobprovider

相關的設置是:vpp="true", untrustedData="false", cacheUnmodifiedFiles="true", requireImageExtension="false".

你周圍有更新的其他擔憂 - cacheMetadata的滑動性能是良好的圖像,但立即更新JavaScript的不是很好。您還會看到增加的磁盤緩存增長。

AzureReader2,不像其他的供應商,還提供了一個redirectToBlobIfUnmodified設置。如果爲true,並且如果內部重寫的查詢字符串缺少任何處理指令,則會啓動重定向。在PostRewrite事件處理程序中檢查e.Querystring的狀態可以提供有關配置或組件是否導致前提條件失敗的信息。

不幸的是,沒有診斷頁面,大部分是猜想。在這種情況下,版本,配置和自定義代碼非常重要。創建一個空的項目只是爲了測試靜態文件代理的行爲,可能會幫助您找出問題的原因,但如果可能的話,請更新這個問題的更多細節和發現。

+0

謝謝Nathanael,如你所建議的,我們會修改我們的網站,直接指向blob商店。 –