2016-12-02 1 views
0

새로운 Sitecore 8.1 인스턴스가 설치되어 실행 중입니다. Sitecore는 "/-/media/Images/FOLDER/IMAGENAME.jpg"와 같은 URL을 사용하여 미디어 처리기를 통해 이미지를로드합니다. Sitecore 미디어 처리기는 Sitecore 데이터베이스에서 이미지를 찾은 다음 실제 이미지 파일 (이미지가 디스크에 존재하지 않음)을 반환 할 수 있도록 실행해야합니다. Sitecore가 ImageResizer가 처리하도록하는 것과 달리 요청을 훔칠 것이기 때문에 ImageResizer에서 Sitecore 이미지를 처리 ​​할 수 ​​없었습니다. 말이된다.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); 

그것은 성공적 클라이언트로 크기가 조정 된 이미지를 반환합니다

정말 잘하지만 작동 Sitecore에서 사용자 지정 파이프 라인을 구현했습니다. 그러나 디스크 캐시를 활성화하여 필요에 따라 모든 크기 조정기 요청을 처리 할 필요가 없으며이 문제에 대한 리소스를 찾지 못했습니다.

내 시나리오 (Sitecore Media)에서 DiskCache 플러그인을 사용할 수 있도록 사용자 지정 파이프 라인을 피하고 원시 ImageResizer를 활성화하려면 할 수있는 일이 있습니까? 또는 DiskCache 클래스를 사용하여 파이프 라인을 수정하여 내 장비를 조작 할 수있는 방법이 있습니까?

감사합니다.

답변

1

왜 자신의 이미지 리사이저를 사용하고 싶습니까?

물론 가능 하겠지만 이미 사용하고있는 Sitecore 미디어 핸들러는 쿼리 문자열 매개 변수를 추가하여 원본 업로드 이미지의 크기를 조정할 수 있다는 사실을 알고 있습니까? 이렇게하면 캐싱 질문이 해결되고 직접 플러그인을 만들 필요가 없습니다.

Sitecore는 자동으로 크기가 조정 된 이미지를 디스크에 저장하므로 (디스크 캐시와 동일한 이미지의 다음 요청에 대해 성능을 크게 향상시킬 수 있음) 강력하게 기본 Sitecore 기능을 사용하는 것이 좋습니다. 동일한 매개 변수) 및 sitecore는 이러한 모든 임시 파일이 삭제 된 경우 (예를 들어 새로운 설치/배포로) 캐시를 다시 만듭니다.

이미지 URL에 매개 변수를 추가하기 만하면 이미지의 크기를 조정할 수 있습니다. 이미지의 URL이 /-/media/Images/FOLDER/IMAGENAME.jpg 인 경우 w 매개 변수를 추가하여 너비를 설정할 수 있습니다.
/-/media/Images/FOLDER/IMAGENAME.jpg?w=150 h 매개 변수를 추가하여 높이를 지정하십시오. w

  • :

    이것이 가능한 파라미터이다 픽셀 폭
  • H : 픽셀 높이
  • MW : 픽셀 최대폭
  • MH : 픽셀 최대 높이
  • la : 언어 (기본값은 컨텍스트 언어로)
  • vs : 버전 (기본값은 최신 버전)
  • 데시벨 : 데이터베이스 이름 (문맥 데이터베이스 기본값)
  • BC : 배경 색상 (검은 색 기본값)
  • 등 : 소수점 수 (SC = 부동으로 규모 :
  • SC (= 1로) 신축을 허용합니다.25 = 25 %)
  • THN : 썸네일 (THN = 1)
  • DMC : 안 미디어 캐싱, 검색 및 저장 (DMC 고려하는 하나 이상의 일이 있음 = 1)

참고 두 계정. 당신이 당신의 medialibrary 이미지에 쿼리 문자열 값을 추가하기 전에, 당신은 당신이 모든 이미지의 쿼리 문자열에 추가 해시를 추가 할 필요가 있음을 의미합니다

      <setting name="Media.RequestProtection.Enabled" value="false"> 

디폴트 값이 true 설정이 구성을 찾기 위해 확인해야 크기가 조정되기 전에 false로 설정하면 이미지 크기 조정을 실험하고 익숙해 지지만이 설정을 false로 유지하는 것은 프로덕션 환경에서 권장되지 않습니다! 즉, 크기 조정 매개 변수를 사용하려는 이미지에 대한 모든 이미지 요청에 해시 값을 설정해야합니다. 당신이 할 수있는 방법은 아주 간단합니다. 그냥 함께 이미지에 URL을 합격을 다음 코드에서 모든 크기 조정 매개 변수 : (. 전 품질 압축)

Sitecore의 이미지에 제공되지 않는 ImageResizer의 기능 기능을 크기 조정의 숫자가 있습니다
var url = "/-/media/Images/FOLDER/IMAGENAME.jpg?w=150"; 
url = Sitecore.Resources.Media.HashingUtils.ProtectAssertUrl(url) 
+0

. ImageResizer를 사용하여 이미지를 크기 조정했지만 Sitecore의 MediaCache 기능을 사용하여 ImageResizer의 DiskCache 플러그인과 반대되는 결과를 캐싱하여 문제를 해결했습니다. – kamojoe

관련 문제