2008-10-22 56 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文件的主页。

相关问题