我試圖動態來源圖像,使用頁面綁定數據時呈現到路徑中的ID。但是,圖像在框中顯示爲藍色問號[?]。 iOS,Mobile Chrome,舊版Android瀏覽器(2.3),新版Android瀏覽器(4.2.2)和IE/Firefox/Chrome在桌面上的圖像效果都很好。此問題僅在Android 4.0和4.1上出現(至今)。Webservice來源的圖像顯示爲?在某些版本的股票Android瀏覽器
這是我如何加載圖像:
例如。 <img src="../services/getImage?id=f6c799b2-ff31-4fbc-abc9-31f20d5e69c8">
這個請求命中一個.NET Web服務(IHttpAsyncHandler執行),它看起來像這樣
public virtual UploadedImage getImage(Guid imageId) { string eTag; Entities.Image.DTO image = null; if ( image = //get image entity ) { eTag = Delta.Crypto.CreateMD5Hash(image.ModifiedDate.ToEpoch().ToString()); if (Request.Headers[HTTPRequestHeaderKeys.IfNoneMatch].IsNotNullOrEmpty() && Request.Headers[HTTPRequestHeaderKeys.IfNoneMatch] == eTag) { this.RespondWithNoUpdate(); return null; } if (image.ImageUrl.IsNullOrEmpty() || image.ImageContent == null || image.ImageContent.Length == 0) { this.RespondWithNotFound(); return null; } Response.AddHeader(HTTPResponseHeaderKeys.ETag, eTag); return new UploadedImage() { contentType = "image/" + System.IO.Path.GetExtension(image.ImageUrl).ToLower().Substring(1), fileContents = image.ImageContent, fileName = image.ImageUrl }; } return null;
所以,我們正在使用的文件擴展名設置MIME類型,但這可能不是100%可靠,但我已經確認在這些情況下是正確的。
這裏是請求的副本,併成功的響應我的桌面版Chrome瀏覽器 請求: Accept:image/webp,*/*;q=0.8 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8,es;q=0.6 Connection:keep-alive Host:localhost Referer:http://localhost/delta/events/bigevent/app/event.html User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36
響應:
Cache-Control:no-cache Content-Disposition:inline; filename="2dab739b-a06c-4579-8555-0598d738f858_eventApplayoutContainerEventApplicationlandingScreenImageContainer_background-image.png" Content-Length:236 Content-Type:image/png Date:Tue, 11 Feb 2014 19:53:31 GMT ETag:1c79507d4969ea7534f3068ca1e60be4 Expires:-1 Pragma:no-cache
我唯一的猜測是,請求在此圖像時方式,img控件在渲染時不知道MIME類型,因此抱怨。
注意:直接訪問(在單獨的選項卡中)時,請求在Android瀏覽器上成功。
有沒有人有任何想法可能會導致[?]和潛在的解決方案?如果有任何有關股票瀏覽器的文檔,我一直無法找到很多東西。如果你有一些文件的鏈接,那也將非常感激。謝謝!
編輯:我要指出的相對路徑是資源載入圖像精細
Ex. <img src="../images/EmptyProfile.png">