2014-02-27 4 views
0

미디어 라이브러리에 버전없는 PDF가 두 개 있습니다. URL에서 파일을 열려고하면 "레이아웃을 찾을 수 없음"이라고 표시됩니다. 레이아웃 (모든 레이아웃)을 할당하면 아무 것도 렌더링하지 않습니다.Sitecore PDF가 다운로드되지 않음

web.config의 미디어 라이브러리 섹션에 forcedownload = true를 추가했습니다. 누락 된 것이 있습니까? 나는이가 위의 URL은 기본적으로 당신은 미디어 항목에 대한 레이아웃을 지정할 필요가 없습니다

+0

나에게 프로그래밍 질문 같은 소리하지 않습니다 : -1 –

+1

당신이'시도해 봤어 http://testsite.org/~/media/pdfs/Publications/ 정기 간행물/Test.pdf'? 'MediaManager.GetMediaUrl()'을 사용하여 URL 링크를 생성하고 있는지 확인하십시오 – jammykam

+0

jammy! 나는 어리 석었고 부적절하게 미디어 URL을 가져오고있었습니다 (대신 sitecore에서 항목 URL을 사용하고있었습니다). –

답변

2

링크를 지정하는 코드입니다.

http://testsite.org/~/media/pdfs/Publications/Periodicals/Test.pdf

당신이 항상 Sitecore URL을 생성하는 미디어 항목에 대한 항목 LinkManager.GetItemUrl()MediaManager.GetMediaUrl()를 사용 MediaManager.GetMediaUrl()

FileField fileField = Sitecore.Context.Item.Fields["File Field"]; 
var mediaItem = new MediaItem(fileField.MediaItem); 
string url = Sitecore.StringUtil.EnsurePrefix('/', MediaManager.GetMediaUrl(fileMediaItem)); 

를 사용하여 URL을 생성하는 확인 : 링크는 무언가 같이해야합니다.

0

작동하지 않습니다 기본

http://testsite.org/sitecore/media%20library/pdfs/Publications/Periodicals/Test 

로 다운로드 줄 알았는데. URL 앞에 접두사 "/"를 추가하십시오. 예 : site/~/media/pdf.ashx 경로.

또한 미디어 파일을 게시해야합니다. 당신은 설정에서 Media.MediaLinkPrefix의 값을 변경하지 않은

+0

그래 .. 둘 다 끝났어. 그들은 게시되었습니다. –

0

// 아래는 일반적으로 /~/media/로 시작되는 이미지의 URL을 미디어 라이브러리의 항목에

MediaItem mediaItem = new MediaItem(Sitecore.Context.Database.GetItem("Path")); 
         if (mediaItem != null) 
         { 
          imgBtn.ImageUrl = Sitecore.StringUtil.EnsurePrefix('/', Sitecore.Resources.Media.MediaManager.GetMediaUrl(mediaItem); 
          imgBtn.AlternateText = mediaItem.Alt; 
         }