新しい Sitecore 8.1 インスタンスを稼働させています。Sitecore は、"/-/media/Images/FOLDER/IMAGENAME.jpg" のような URL を持つメディア ハンドラーを介して画像を読み込みます。Sitecore メディア ハンドラーを実行して、Sitecore データベースで画像を検索し、実際の画像ファイルを返すことができるようにする必要があります (画像はディスク上に存在しません)。ImageResizer に Sitecore の画像を処理させることはできませんでした。これは、Sitecore が ImageResizer に処理させるのではなく、要求を横取りしようとしているからです。理にかなっています。
Sitecore にカスタム パイプラインを実装しましたが、これは非常にうまく機能します。
var settings = new ResizeSettings(HttpContext.Current.Request.QueryString);
ImageBuilder.Current.Build(args.OutputStream.Stream, stream, settings);
args.OutputStream = new MediaStream(stream, args.MediaData.Extension, args.MediaData.MediaItem);
その後、サイズ変更された画像がクライアントに正常に返されます。ただし、ディスク キャッシュを有効にして、すべてのリサイズ要求をオンデマンドで処理する必要がないようにする方法がわかりません。また、この問題に関するリソースも見つかりませんでした。
カスタム パイプラインを回避し、ネイティブの ImageResizer を有効にして、シナリオ (Sitecore Media) で DiskCache プラグインを使用できるようにするためにできることはありますか? または、パイプラインを変更して、DiskCache クラスを使用して独自のものを作成する方法はありますか?
ありがとう!