3.4. 创建主题


主题包括:

除非计划替换每个页面,否则您应该扩展另一个主题。您最有可能想扩展 Red Hat Single Sign-On 主题,但如果您对页面的外观有很大更改,您还可能考虑对基础进行扩展。其基础主题主要由 HTML 模板和消息捆绑包组成,而 Red Hat Single Sign-On theme 主要包含镜像和样式表。

在扩展主题时,您可以覆盖单个资源(模板、风格表等)。如果您决定覆盖 HTML 模板,在升级到新版本时您可能需要更新自定义模板。

在创建主题时,最好禁用缓存,因为这样可以直接从主题目录中编辑主题资源,而无需重启 Red Hat Single Sign-On。

流程

  1. 编辑 standalone.xml
  2. 对于 主题,将 staticMaxAge 设置为 -1,将 cacheTemplatescacheThemes 设置为 false

    <theme>
        <staticMaxAge>-1</staticMaxAge>
        <cacheThemes>false</cacheThemes>
        <cacheTemplates>false</cacheTemplates>
        ...
    </theme>
    Copy to Clipboard Toggle word wrap
    注意

    确保在生产环境中重新启用缓存,因为它会对性能有严重影响。

  3. 主题 目录中创建一个目录。

    目录的名称成为主题的名称。例如,要创建一个名为 mytheme 的主题,请创建目录 themes/mytheme

  4. 在me 目录中,为您要提供的每种类型创建一个目录。

    例如,要将登录类型添加到 mytheme theme 中,请创建目录 themes/mytheme/login

  5. 对于每个类型,创建一个文件 theme.properties,允许为主题设置一些配置。

    例如,要配置主题主题/mytheme/login 以扩展基础主题并导入一些常见资源,请创建文件 themes/mytheme/login /theme.properties 及以下内容:

    parent=base
    import=common/keycloak
    Copy to Clipboard Toggle word wrap

    您现在已创建了支持登录类型的主题。

  6. 登录到 Admin Console 以签出您的新主题
  7. 选择您的域
  8. 从菜单中点 Realm Settings
  9. Themes 选项卡。
  10. 对于 Login Theme,选择 mytheme 并点 Save
  11. 打开域的登录页面。

    您可以通过应用程序登录或打开帐户管理控制台(/realms/{realm name}/account)来执行此操作。

  12. 要查看更改父主题的效果,请在me .properties 中设置 parent=keycloak 并刷新登录页面。

3.4.1. me 属性

me 属性在主题目录中的 &lt ;THEME TYPE>/theme.properties 中设置。

  • 父项 - 要扩展的主题
  • import - 从另一主题导入资源
  • 样式 - 空格分隔的样式列表包括
  • locales - 以逗号分隔的支持区域列表

有一个属性列表可用于更改用于某些元素类型的 cs 类。如需这些属性的列表,请查看对应类型 keycloak theme 中的 theme.properties 文件(themes/keycloak/<THEME TYPE>/theme.properties)。

您还可以添加自己的自定义属性,并从自定义模板使用它们。

在这样做时,您可以使用以下格式替换系统属性或环境变量:

  • ${some.system.property} - for system properties
  • ${env.ENV_VAR} - 用于环境变量。

如果系统属性或环境变量没有使用 ${foo:defaultValue} 找到,也可以提供默认值。

注意

如果没有提供默认值,且没有对应的系统属性或环境变量,则不会替换任何内容,您会在模板中以 格式结束。

以下是可能的问题示例:

javaVersion=${java.version}

unixHome=${env.HOME:Unix home not found}
windowsHome=${env.HOMEPATH:Windows home not found}
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat