2008-10-22 63 views
1

我有一個網站,它會出售給不同的客戶,但出於維護的原因,我們將保持一個代碼庫。所以這意味着這個代碼庫必須足夠動態才能擁有不同的樣式等等,具體取決於客戶端。如何根據域名加載不同的主題/ css

該域將是一個子域類型系統,因此:projectname.clientname.com,projectname.clientname.com等等,其中客戶端名稱是我們將系統銷售給的公司。

我想要做的是有一個不同的主題加載取決於域。所以我可能有ecards.savills.com,爲此,我在主題中有一個叫做第一太平戴維斯的文件夾,並且在那個名爲Savills的文件夾中有一個.CSS文件,我想加載它。我一直在玩請求對象,但沒有運氣。

我試過幾種方法來達到這個目的,使用樣式表裏(不需要皮膚按鈕BTW),但我不斷收到堆棧溢出的系統DLL的.NET。

什麼是實現這一目標的可靠方法?

+0

看到這個主題 - > [http://stackoverflow.com/questions/178863/change-theme-css-based-on-user](http://stackoverflow.com/questions/178863/change-theme-基於CSS-上用戶) – 2008-10-22 14:29:19

回答

0
/* Do you have a folder in "Themes" or "APP_Themes" called Savillis? */ 

當您爲頁面指定主題時,將加載該主題文件夾中的所有樣式表。它們將按字母順序加載,所以請注意訂單。

在頁面級別,你可以設置在Page指令(C++)或PreInit(代碼隱藏)的主題,也可以設置在web.config默認主題。 (您還可以設置一個全球性的主題,但是那通常不使用。

/* Are you doing that? */ 

是否有獨立的網站實例?

0

我有App_Themes文件在我的根目錄,然後我添加了一個主題,那(哪是一個摺疊r,我重命名)。

我希望通過編程設定的主題,因爲它的條件限制,所以現在用page_preinit。

0

編寫一個HttpModule來分配特定領域的主題。就像UrlRewrite httpmodule一樣。如果你不知道如何創建httpmodule,你可以在msdn上獲得教程。

1

您可以使用不同的母版頁來完成此操作。

代碼對一個母版頁默認(或設置大師),然後在運行時根據主機域編程方式更改母版頁。

要做到這一點,你必須在頁面生命週期的OnPreInit階段設置頁面的屬性的MasterPageFile。 (它不允許在此之後,因爲主已被加載。)

被選擇可以有完全不同的佈局和參考完全獨立的CSS文件的主頁。

相關問題