HTML页面式样是不显示,Jenkins HTML报告样式无法显示问题解决

在部署jenkins持续集成的过程中经常会用到HTML Publisher Plugin插件来显示测试报告。

为了测试报告样式的美观以及易读,测试报告中经常会搭配CSS和JS实现自定义的样式或动画效果。

Jenkins中在访问有自定义样式或动画效果的测试报告时,展示的样式往往会出乎你的想象,面目全非,样式错乱,动画无法展示等等问题。打开浏览器开发工具控制台,可以看到CSS、JS加载失败。

问题

006tNbRwly1fw46y2sfysj30iv0cyjum.jpg

原因

Jenkins为了避免受到恶意HTML/JS文件的攻击,会默认将安全策略CSP设置为:

sandbox; default-src ‘none’; img-src ‘self’; style-src ‘self’;

在此配置下,只允许加载:Jenkins服务器上托管的CSS文件

Jenkins服务器上托管的图片文件

以下形式的内容都会被禁止:JavaScript

plugins (object/embed)

HTML中的内联样式表(Inline style sheets),以及引用的外站CSS文件

HTML中的内联图片(Inline image definitions),以及外站引用的图片文件

frames

web fonts

XHR/AJAX

解决

方法一

修改CSP(Content Security Policy)的默认配置,到Jenkins系统管理->脚本命令行,执行以下Groovy命令,然后点击运行。配置完成后,重新构建原有项目,HTML页面即可正常显示。1System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

006tNbRwly1fw471l5bsvj30u0097ab2.jpg

然而当你重新启动jenkins时,你会发现,HTML页面再次面目全非,CSP恢复为默认配置,因此这个办法只是临时方案

方法二

利用jenkins的以下两个插件可以巧妙解决这个问题Startup Trigger: 可实现在Jenkins节点(master/slave)启动时触发构建;

Groovy plugin: 可实现直接执行Groovy代码。

解决步骤如下:Jenkins中新建一个Job,该Job专用Jenkins启动时执行的配置命令。

在“构建触发器”模块,选择“Build when job nodes start”选项。

006tNbRwly1fw472m709uj30le07qaar.jpg在“构建”模块,选择“Execute system Groovy script”,执行如下Groovy命令:1System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

006tNbRwly1fw4737k557j30so0b1jsg.jpg

立即构建此Job,返回原项目重新构建,再次访问HTML页面即可发现问题已解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值