Keycloak CSS 未在浏览器中更新

问题描述 投票:0回答:5

我正在开发环境中将 Keycloak 从 9.x 升级到 12.x。我最初复制了一些自定义主题,发现样式严重损坏(毫不奇怪)。我检查了我的 FTL 文件,将一些核心更改复制到我的主题中,情况好多了 - 只是需要调整一些小问题。

现在问题来了。我已对 login.css 文件进行了更改,但这些更改未显示在浏览器中。它继续获取我的自定义 CSS 文件的旧版本。

我尝试过的(其中大多数尝试过多次):

  • 清除浏览器缓存
  • 重启Keycloak
  • 检查主题文件的所有权/权限
  • 重新启动整个服务器
  • 直接加载CSS文件
  • 直接加载CSS文件并添加无意义的参数(试图绕过任何可能的中间人缓存)
  • 确认新版本的 Keycloak 正在运行
  • 在其他浏览器中加载页面

我现在还在整个 Keycloak 目录中查找了一些我已删除的 CSS 规则,并且在任何可能被意外引用的地方都找不到“旧”CSS 文件的任何副本。

此外,加载 CSS 文件时 Keycloak 日志中没有任何消息。

我想弄清楚如何让 Keycloak 将更新后的 CSS 传递到浏览器。

keycloak freemarker
5个回答
10
投票

瞎猜,如果不行请别怪我。 (问题应包括最小可重现示例):

编辑

/opt/jboss/keycloak/standalone/configuration/standalone-ha.xml
并更新如下:

<theme>
  <staticMaxAge>-1</staticMaxAge>
  <cacheThemes>false</cacheThemes>
  <cacheTemplates>false</cacheTemplates>
  
  ...
  
</theme>

2
投票

对我来说,更改此文件后它就起作用了 独立.xml 就像下面的方式

<cacheThemes>false</cacheThemes>
<cacheTemplates>false</cacheTemplates>

我认为这是因为我使用的是单实例模式而不是集群 ha 模式。


1
投票

除了如上所述禁用缓存之外,您还可以调整主题资源 URL,从而破坏客户端缓存。这有点hack,但是您可以通过调整数据库migration_model.id值来直接修改URL的资源标签部分。

参考资料:


0
投票

您必须删除路径 keycloak-server\standalone mp\kc-gzip-cache\sbgwq 或其他文件夹...并在浏览器中以隐身模式进行测试。


0
投票

我更改了 Keycloak(版本 18)主题的 CSS,并且重新启动 docker 容器没有刷新缓存。 我必须跑:

docker exec -it docker_keycloak_1 rm -rf /opt/jboss/keycloak/standalone/tmp/kc-gzip-cache

访问特定站点时,将自动重新创建缓存文件。

© www.soinside.com 2019 - 2024. All rights reserved.