2008-10-22 4 views
1

사이트가 있고 다른 클라이언트에게 판매 될 예정이지만 유지 관리상의 이유로 인해 하나의 코드베이스가 유지됩니다. 즉,이 코드베이스는 클라이언트에 따라 다른 스타일 등을 가질만큼 충분히 동적이어야합니다.다른 테마/CSS를 도메인 이름에 따라로드하는 방법

도메인은 하위 도메인 유형 시스템이므로 projectname.clientname.com, projectname.clientname.com 등이 있습니다. 여기서 client name은 시스템을 판매 한 회사입니다.

내가하려는 것은 도메인에 따라 다른 테마로드를하는 것입니다. 따라서 ecards.savills.com이있을 수 있습니다. 그 때문에 Savills라는 테마의 폴더가 있고 Savills라는 .CSS 파일이라는 폴더 안에로드하려고합니다. 나는 요청 객체를 가지고 놀았지만 행운은 없다.

나는 이것을 달성하기 위해 stylesheettheme (btw 버튼을 스킨하지 않아도 됨)을 사용하여 시도했지만, .NET 용 시스템 dll에서 스택 오버 플로우가 계속 발생합니다.

이것을 달성하기위한 강력한 방법은 무엇입니까?

+0

이 스레드보기 -> [http://stackoverflow.com/questions/178863/change-theme-css-based-on-user](http://stackoverflow.com/questions/178863/change-theme- CSS 기반 사용자) –

답변

0

페이지에 테마를 지정하면 해당 테마 폴더의 모든 스타일 시트가로드됩니다. 알파벳 순으로로드되므로 주문을 확인하십시오.

페이지 수준에서 Page 지시문 (aspx) 또는 PreInit (코드 숨김)에서 테마를 설정하거나 web.config에서 기본 테마를 설정할 수 있습니다. 이 별도의 웹 사이트 인스턴스 (당신은 또한 글로벌 테마를 설정할 수 있지만 일반적으로 사용되지 이잖아.

/* Are you doing that? */ 

있습니까?

0

은의 정보를 사용하여 코드의 테마를 변경하는 생각 다음과 같습니다. HTTP_REFERER 확인 요청되고있는 도메인을 참조하고 해당 도메인에 대한 선호를 테마로 변경하기 위해 SELECT CASE를 사용합니다.

http://msdn.microsoft.com/en-us/library/tx35bd89.aspx

0

을 내 루트 디렉토리에 APP_THEMES이 있고, 나는 (즉에 테마를 추가하는 포드 r, 나는 이름을 바꾼다).

페이지 경계를 조건으로 프로그래밍 방식으로 테마를 설정하려면 page_preinit을 사용하고 있습니다.

0

도메인 관련 테마를 할당하기 위해 HttpModule을 작성하십시오. UrlRewrite httpmodule과 같습니다. httpmodule을 만드는 방법을 모르는 경우 msdn에 대한 자습서를 얻을 수 있습니다.

1

다른 마스터 페이지를 사용하여이를 수행 할 수 있습니다.

하나의 마스터 페이지 (또는 마스터 집합)에 대해 기본값을 코딩 한 다음 호스트 도메인을 기반으로 런타임에 프로그래밍 방식으로 마스터 페이지를 변경하십시오.

이렇게하려면 페이지 수명주기의 OnPreInit 단계에서 페이지의 MasterPageFile 속성을 설정해야합니다. 마스터가로드되었으므로 허용되지 않습니다.

선택한 마스터 페이지는 크게 다른 레이아웃을 가질 수 있으며 참조는 CSS 파일을 완전히 분리 할 수 ​​있습니다.

관련 문제