Jenkins - HTML Publisher Plugin - 在 Jenkins Server 中查看报告时不显示 CSS

新手上路,请多包涵

我对 Jenkins HTML Publisher 插件有一个奇怪的问题,在 Jenkins 中查看时,我添加到报告中的所有花哨的 CSS 都被删除了。如果我将报告下载到本地,我可以看到 CSS 格式。 Jenkins 中是否有允许查看 CSS 的设置?

我在 Jenkins 中的 HTML Publisher 设置:

在此处输入图像描述

在 Jenkins 中显示的我的报告页面:

在此处输入图像描述

我的报告页面在本地显示时:

在此处输入图像描述

原文由 Vall 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 664
2 个回答

想通了这个问题。在这里分享给其他用户。

由于 Jenkins 中的内容安全策略,CSS 被剥离。 ( https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy

默认规则设置为:

 sandbox; default-src 'none'; img-src 'self'; style-src 'self';

此规则集导致以下结果:

  • 根本不允许使用 JavaScript
  • 不允许插件(对象/嵌入)
  • 不允许内联 CSS 或来自其他网站的 CSS
  • 不允许来自其他网站的图片
  • 不允许任何帧
  • 不允许使用网络字体
  • 不允许 XHR/AJAX 等。

要放宽此规则,请访问

  1. 管理詹金斯->
  2. 管理节点->
  3. 点击设置(齿轮图标)->
  4. 单击左侧的脚本控制台并输入以下命令:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

并按运行。如果您在“结果”标题下方看到输出为“结果:”,则保护被禁用。重新运行您的构建,您可以看到归档的新 HTML 文件将启用 CSS。

原文由 Vall 发布,翻译遵循 CC BY-SA 4.0 许可协议

CentOs 中,启用 html 报告中的图像

  • sudo vi /etc/sysconfig/jenkins
  • JENKINS_JAVA_OPTION

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;\""

即使在重新启动 jenkins 的服务器后,这也会起作用。


指示

default-srcdefault-src 是加载 JavaScript、图像、CSS、字体、AJAX 请求、框架、HTML5 媒体等内容的默认策略

img-src: 定义图像的有效来源。

来源价值

’ self ‘ - 允许从相同来源(相同方案、主机和端口)加载资源。

用法: default-src 'self'

’ unsafe-inline ‘ - 允许使用内联源元素,例如样式属性、onclick 或脚本标记主体(取决于应用它的源的上下文)和 javascript: URI。

用法: default-src 'unsafe-inline'

’ unsafe-eval ‘ - 允许不安全的动态代码评估,例如 JavaScript eval()

用法: default-src 'unsafe-eval'

数据: - 允许通过数据方案加载资源(例如 Base64 编码图像)。

用法: img-src 'self' data:

在此处 参阅有关内容安全策略的更多信息

原文由 jithinkmatthew 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题