httpsベースのサイト(サイトA)は、httpベースのサイトBの画像を使用します。混合コンテンツエラーが発生します。この問題を解決するには、外部の画像に転送するコントローラメソッドでhttp://www.siteB.com/imageX.pngのような各外部リンクを交換するソリューションが見つかりました。方法/api/misc/forward
のコードは以下の通りですhttpsサイトのhttpサイトの画像:混合モード
:新しいリンクの形式がある
[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からのすべての画像をキャッシュしたくありません:)。
はい、私は最初の解決策でメモリキャッシュを使用しましたが、サーバーの速度が遅くなることに敬意を表していましたので、変更することにしました:)いくつかの変更の後、私は新しいバージョンが動作したと思ったが、それはなかった:( –
あなたはtempディレクトリにファイルを書き込んで、後でハードディスクから直接提供することができます。また、出力キャッシュを設定して、サーバーはキャッシュして、サーバーからまったく要求しません。これにより、Webサーバーの負担がなくなります –