果园动态设置主题
Orchard Setting theme dynamically
我正在使用 ISiteThemeService
服务在 Orchard 中动态设置主题:
_themeManager.SetSiteTheme("MyTheme");
但出于某种原因,主题 (The Theme MAchine) 仍然处于激活状态,其中没有样式表。
编辑:当我重新启动 Orchard 时,主题已成功激活。
这是否意味着我每次将主题设置为当前主题时都必须重新启动 Orchard?
如果可以,我怎样才能动态地做到这一点? (重申果园)。
你还需要注入IThemeService
并调用:
_themeService.EnableThemeFeatures("MyTheme");
顺便说一句,你在 SO 和 GitHub 上提出的问题的一般主题表明你正在做很多租户的自动设置,你可能想看看 Recipes。
要实现的正确接口可能是 IThemeSelector
(参见 https://github.com/OrchardCMS/Orchard/blob/6720b71cf3474a9a7b8a8cc9a99d58b1e733acfa/src/Orchard/Themes/IThemeSelector.cs)。
ThemeService
的作用是管理可用的主题,但 IThemeSelector
的实现决定了每个请求使用哪个主题。
我正在使用 ISiteThemeService
服务在 Orchard 中动态设置主题:
_themeManager.SetSiteTheme("MyTheme");
但出于某种原因,主题 (The Theme MAchine) 仍然处于激活状态,其中没有样式表。
编辑:当我重新启动 Orchard 时,主题已成功激活。
这是否意味着我每次将主题设置为当前主题时都必须重新启动 Orchard?
如果可以,我怎样才能动态地做到这一点? (重申果园)。
你还需要注入IThemeService
并调用:
_themeService.EnableThemeFeatures("MyTheme");
顺便说一句,你在 SO 和 GitHub 上提出的问题的一般主题表明你正在做很多租户的自动设置,你可能想看看 Recipes。
要实现的正确接口可能是 IThemeSelector
(参见 https://github.com/OrchardCMS/Orchard/blob/6720b71cf3474a9a7b8a8cc9a99d58b1e733acfa/src/Orchard/Themes/IThemeSelector.cs)。
ThemeService
的作用是管理可用的主题,但 IThemeSelector
的实现决定了每个请求使用哪个主题。