jenkins的基本使用——解决html样式问题
一. jenkins未展示css样式的原理
官方解释:https://stackoverflow.com/questions/35783964/jenkins-html-publisher-plugin-no-css-is-displayed-when-report-is-viewed-in-j
简单来说,就是jenkins出于安全考虑,禁止了css和js的加载
详细原因:
Jenkins中配置的CSP(Content Security Policy)
这是Jenkins的一个安全策略,默认会设置了默认的权限权限集:sandbox; default-src 'none'; img-src 'self'; style-src 'self';
防止Jenkins用户在workspace、/userContent、archived artifacts中受到恶意HTML/JS文件的攻击。
在该配置下,只允许加载:
- Jenkins服务器上托管的CSS文件
- Jenkins服务器上托管的图片文件
而如下形式的内容都会被禁止:
- JavaScript
- plugins (object/embed)
- HTML中的内联样式表(Inline style sheets),以及引用的外站CSS文件
- HTML中的内联图片(Inline image definitions),以及外站引用的图片文件
- frames
- web fonts
- XHR/AJAX
- etc.
二. 解决方案
1. 临时方案1:
官网中也写明了解决方案,不过这个解决方案是临时的,jenkins重启后就失效了
翻译成中文就是:进入Jenkins》Manage Jenkins》Script Console》输入如下命令,点击运行,重新构建项目后的报告就可以展示样式了
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
2. 临时方案2
如果Jenkins为war包,也就是部署到tomcat上这种,可以通过java命令运行解决
关闭jenkins,命令行直接运行:java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar D:\Jenkins\jenkins.war,路径根据自己的jenkins.war路径修改
不过这个方案也是临时的,tomcat重启后就不生效了
3. 永久解决方案1
修改catalina.bat文件,找到tomcat/bin下的catalina.bat文件,直接在文件中添加如下命令:
set CATALINA_OPTS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"\""
添加完成后,需要重启tomcat,这样就可以永久有效了
4. 永久解决方案2
1)安装插件startup-trigger-plugin和Groovy,安装方式参考文档:https://www.cnblogs.com/leslie12956/p/13186158.html
2)新建一个job,该job专门用于Jenkins启动时执行的配置命令;每次jenkins启动都会自动执行该job
3)在构建触发器模块下,勾选Build when job nodes start;
4)在增加构建步骤,增加Execute system Groovy script,输入命令:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
注意: 我们的方法中,都是把安全策略设置为空,这样其实是有安全隐患的,实际应用中,可以根据自己的项目需要进行设置,详细的配置可参考:https://content-security-policy.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)