Jenkins HTML Publisher插件有一个奇怪的问题,其中在Jenkins中查看时,我添加到报表中的所有花哨CSS都被剥离。如果我将报告下载到本地,我可以看到CSS格式。 Jenkins中有一个允许CSS被查看的设置吗?Jenkins - HTML Publisher Plugin - 在Jenkins服务器中查看报告时不显示CSS
我的HTML出版商设置在詹金斯:
我的报告页面时,在詹金斯显示:
我的报告页面时,在本地显示:
Jenkins HTML Publisher插件有一个奇怪的问题,其中在Jenkins中查看时,我添加到报表中的所有花哨CSS都被剥离。如果我将报告下载到本地,我可以看到CSS格式。 Jenkins中有一个允许CSS被查看的设置吗?Jenkins - HTML Publisher Plugin - 在Jenkins服务器中查看报告时不显示CSS
我的HTML出版商设置在詹金斯:
我的报告页面时,在詹金斯显示:
我的报告页面时,在本地显示:
找出问题所在。在此分享给其他用户。
由于Jenkins中的内容安全策略,CSS被剥离出来。 (https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy)
默认的规则设置为:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
此规则集结果如下:
放宽此规则,请转到管理Jenkins->脚本控制台和键入以下命令:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
并按运行。如果在“结果”标题下看到输出为“结果:”,则保护被禁用。重新运行你的构建,你可以看到归档的新HTML文件将启用CSS。
(以下解决方案适用于Windows)。
一个永久的解决办法是改变行[Jenkins directory]\jenkins.xml
(对我来说这是在C:\Jenkins\jenkins.xml
)
<executable>java.exe</executable>
<arguments>[arguments are here]</arguments>
以下参数添加到空格分隔参数列表:
-Dhudson.model.DirectoryBrowserSupport.CSP=
然后重新启动Jenkins服务以接收更改。
您可以通过在Vall的回答指定使用常规命令解决这个问题。
效果是一直到詹金斯重新启动后,你必须再次做。
解决这个问题的一个解决方案是配置工作时詹金斯启动,会为你做到这一点。
您可以通过使用Startup Trigger plugin来完成此操作。
安装完成后,创建一个新的作业,您将需要检查构建触发器部分下的新复选框。
然后加入用命令的执行系统Groovy脚本生成步骤:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")
保存,一切都应该工作。
的Ubuntu版本14有益的是特殊的插件:
https://wiki.jenkins-ci.org/display/JENKINS/Startup+Trigger - 要在詹金斯启动开始工作
https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - 要运行系统Groovy脚本
而且我做了一个工作,这对詹金斯开始重新启动并设置参数。
而且增加系统的Groovy脚本设置parametr。 System.setProperty( “hudson.model.DirectoryBrowserSupport.CSP”, “沙箱; IMG-src的 '自我';”)
尽管运行作业成功完成,但它并未启用报告的CSS显示。我在“脚本控制台”中运行完全相同的groovy脚本,并且运行良好。我还可以做些什么?这项工作的groovy脚本并没有改变实际的Jenkin的父母的财产。 – frakman1
@ frakman1在这一刻我的Groovy脚本看起来像这样 - System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”,“”) 但是,这一切,一切正常。也许你没有管理员用户? – abiab
谢谢你的回应。我最终得到它的工作。我不得不使用这个脚本:'System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”,“sandbox allow-same-origin allow-scripts; default-src'self'; script-src *'unsafe-eval' ; img-src *; style-src *'unsafe-inline'; font-src *“)' – frakman1
在CENTOS,以使得在HTML报告图像
sudo vi /etc/sysconfig/jenkins
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;\""
即使在重新启动jenkin服务器后,这也可以工作。
指令
默认-SRC:默认-SRC是加载内容,如JavaScript,图片,CSS,字体,AJAX请求,框架,HTML5媒体
这样的默认策略IMG-SRC:定义图像的有效来源。
源值
'自我' -来自同一产地(相同的方案,主机和端口)允许加载资源。
用法:
default-src 'self'
“不安全内联” - 允许使用内联源元件,例如风格属性的,的onclick或脚本标签体(依赖于它被施加到源的上下文)和javascript:URI。
用法:
default-src 'unsafe-inline'
'不安全-EVAL' - 允许不安全动态代码评估例如JavaScript的eval()
用法:
default-src 'unsafe-eval'
数据: - 允许通过数据方案加载资源(例如Base64编码图像)。
用法:
img-src 'self' data:
请参考有关内容安全策略here
唯一一个适合我的工具 – Adiii
在于Debian/Ubuntu,在aptitude installations:
sudo vi /etc/default/jenkins
-Dhudson.model.DirectoryBrowserSupport.CSP=
到JAVA_ARGS
(例如JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP="
)service jenkins restart
这是足以让我,但参数的完整列表,请参阅this answer。
现在回复已经太迟了,但还是想分享。
我一直在与Jenkins部署在Tomcat中挣扎,试图执行脚本,它有助于但是如果tomcat重新启动就会消失。
通过在tomcat中设置catalina.properties中的属性进行永久修复。
属性文件:tomcat_installation_dir/conf目录/ catalina.properties 只要复制粘贴catalina.properties下面的线在最后(你可以设置它的任何地方只是为了不与现有的性质混乱)
-Dhudson.model .DirectoryBrowserSupport.CSP =“”
在向我的jenkins添加HTTPS后,我遇到了同样的问题。如果您遇到同样的问题,该解决方案很简单 - 将您的Jenkins url设置为使用HTTPS协议而不是HTTP。它可以通过詹金斯配置配置 - >詹金斯url
可能重复[詹金斯HTML发布者插件:没有外部链接与詹金斯1.643](http://stackoverflow.com/questions/34681852/jenkins-html-publisher-plugin -no-external-links-with-jenkins-1-643) –