2012-01-11 2 views
1

내 테마 (내용/디렉토리)에 이미지가 있고 다른 장소에 표시하고 싶습니다. <img src="@Url.Content("~/Themes/MyTheme/Content/Images/image.gif")" />Theme 디렉토리를 검색 할 수있는 Orchard CMS의 기능이 있습니까?

이 작동하지만, 아주 유지 보수가 아니다 (내가 뭘 등 테마를 전환 할 경우) :

내 현재의 접근 방식이다.

GetCurrentThemeDirectory()와 같이 디렉토리를 반환 할 수있는 메서드가 내장되어 있습니까? 그렇게 할 수 있습니까?

편집 : mdm의 의견에서 테마 변경이 유효한 문제가 아니라는 것을 알고 있습니다. 난 그냥 모든 참조에 대한 URL을 입력하지 마십시오.

답변

1

어디에서 이미지를 참조할까요? 기준 치수? 또 다른 테마?

이미지가있는 테마에서 온 것이라면 테마를 전환하는 것에 대해 걱정할 필요가 없습니다. 다른 테마에서 온 것이라면 이미지는 테마의 일부 여야합니다. 그것이 모듈에서 온 것이라면 이미지를 모듈의 일부로 저장하거나 테마에서 재정의하는 것이 좋습니다 (아래 참조).

이미지를 테마의 일부로 사용하려면 모듈에서 '기본'모양을 반환 한 다음 테마에서 재정의하도록 할 수 있습니다. 주제의 이미지를 모듈에서 참조 할 이유가 없으며 그 반대도 마찬가지입니다.

을 편집 편집 내가 작성한 테마에서

후, 나는 오차드 저자가 무엇을 따랐습니다. <img> 태그를 사용하는 대신 이미지는 Styles/images에 저장됩니다. 그런 다음 CSS background-image 속성을 사용하여 참조 할 수 있습니다. Views/Branding.cshtml에서

:

<div id="header"></div> 
<h1 id="branding"><a href="@homeUrl">@WorkContext.CurrentSite.SiteName</a></h1> 

그리고 site.css에서 :

#header { 
    /* snip */ 
    background-image: url(images/header.png); 
    /* snip */ 
} 

Themes/TheAdmin/site.css이있어서 더 많은 예를 포함한다.

+0

감사합니다. 제 질문을 업데이트했습니다. 나는 같은 주제에서 언급하고있다. – Aligned

+0

Hey Aligned, 내 대답을 업데이트했습니다 :) – mdm

+0

@ WorkContext.CurrentSite.ImageUrl을 사용할 수 있도록 사용자 지정 설정을 할당 할 수 있습니다. '@ workContext.CurrentSite'를 검색하고 thishttp : //docs.orchardproject.net/Documentation/Adding-custom-settings를 찾았습니다. – Aligned