0
我的基於https的站點(站點A)使用基於http的站點B的圖像。導致混合內容錯誤。爲了解決這個問題,我找到了解決方案,使用我的控制器方法將每個外部鏈接(如http://www.siteB.com/imageX.png)交換到外部映像。新鏈接的格式是:https站點上http站點的圖像:混合模式
方法/api/misc/forward
的代碼如下:
[HttpGet]
public async Task<HttpResponseMessage> Forward(string url)
{
HttpResponseMessage httpResponseMessage = new HttpResponseMessage();
try
{
var response = Request.CreateResponse(HttpStatusCode.Found);
response.Headers.Location = new Uri(HttpUtility.UrlDecode(url));
return response;
}
catch (Exception ex)
{
httpResponseMessage.StatusCode = HttpStatusCode.NotFound;
_loggerService.LogException(ex, url);
}
return httpResponseMessage;
}
但瀏覽器仍然能夠將其識別爲混合模式....爲什麼? 從基於https的網站發送到瀏覽器源的原始圖像鏈接。
任何快速提示呢?我不想緩存站點B的所有圖像:)。
是的,我在第一個解決方案中使用了內存緩存,但是我很喜歡它會降低服務器速度,所以我決定改變它:)。經過一些改變後,我認爲新版本的工作,但它沒有:( –
您可以將文件寫入臨時目錄並稍後從硬盤提供它,也可以爲其設置輸出緩存以減少網頁上的點擊次數服務器,瀏覽器將緩存它,並不會從服務器請求它,這應該消除Web服務器上的任何負擔 –