[html] Jenkins-HTML 게시자 플러그인-Jenkins 서버에서 보고서를 볼 때 CSS가 표시되지 않음

Jenkins HTML Publisher 플러그인에 이상한 문제가 있는데, Jenkins에서 볼 때 보고서에 추가 한 모든 멋진 CSS가 제거됩니다. 보고서를 로컬로 다운로드하면 CSS 형식을 볼 수 있습니다. Jenkins에 CSS를 볼 수있는 설정이 있습니까?

Jenkins의 내 HTML 게시자 설정 :

여기에 이미지 설명 입력

Jenkins에 표시 될 때 내 보고서 페이지 :

여기에 이미지 설명 입력

로컬에 표시 될 때 내 보고서 페이지 :

여기에 이미지 설명 입력



답변

문제를 파악했습니다. 다른 사용자를 위해 여기에서 공유합니다.

Jenkins의 콘텐츠 보안 정책으로 인해 CSS가 제거되었습니다. ( https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy )

기본 규칙은 다음과 같이 설정됩니다.

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

이 규칙 세트의 결과는 다음과 같습니다.

  • 자바 스크립트가 전혀 허용되지 않음
  • 플러그인 (객체 / 포함)이 허용되지 않음
  • 인라인 CSS 또는 다른 사이트의 CSS는 허용되지 않습니다.
  • 다른 사이트의 이미지는 허용되지 않습니다.
  • 허용되는 프레임 없음
  • 허용되는 웹 글꼴 없음
  • XHR / AJAX는 허용되지 않습니다.

이 규칙을 완화하려면 다음으로 이동하십시오.

  1. Jenkins 관리->
  2. 노드 관리->
  3. 설정 (톱니 바퀴 아이콘)-> 클릭
  4. 왼쪽의 스크립트 콘솔을 클릭하고 다음 명령을 입력하십시오.

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

그리고 실행을 누릅니다. 출력이 “결과”헤더 아래에 ‘결과 :’로 표시되면 보호가 비활성화 된 것입니다. 빌드를 다시 실행하면 보관 된 새 HTML 파일에 CSS가 활성화되어 있음을 알 수 있습니다.


답변

에서 가상 코어 , 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:;\""

젠킨스 서버를 다시 시작한 후에도 작동합니다.


지령

default-src : default-src는 JavaScript, 이미지, CSS, 글꼴, AJAX 요청, 프레임, HTML5 미디어와 같은 콘텐츠를로드하기위한 기본 정책입니다.

img-src : 유효한 이미지 소스를 정의합니다.

소스 값

‘self’- 동일한 출처 (동일한 체계, 호스트 및 포트)에서 리소스를로드 할 수 있습니다.

사용법 : default-src 'self'

‘안전하지 않은 인라인은’의 URI : 같은 스타일 속성의 onclick 또는 스크립트 태그의 몸 인라인 소스 요소의 사용과 자바 스크립트합니다 (이 적용되는 소스의 상황에 따라 다름) 할 수 있습니다.

사용법 : default-src 'unsafe-inline'

‘안전 – 평가는’) (자바 스크립트의 평가 동적으로 안전하지 않은 코드를 평가할 수있다

사용법 : default-src 'unsafe-eval'

데이터 :데이터 체계를 통해 리소스를로드 할 수 있습니다 (예 : Base64 인코딩 이미지).

사용법 : img-src 'self' data:

여기에서 콘텐츠 보안 정책에 대한 자세한 내용을 참조 하십시오.


답변

“Manage Jenkins”->“Script console”로 이동하여 아래 명령을 실행하십시오.

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


답변

(다음 솔루션은 Windows 용입니다.)

영구적 인 수정은 줄을 변경하는 것입니다 [Jenkins directory]\jenkins.xml(나를 위해 그것은에 있습니다 C:\Jenkins\jenkins.xml)

<executable>java.exe</executable>
<arguments>[arguments are here]</arguments>

공백으로 구분 된 인수 목록에 다음 인수를 추가합니다.

-Dhudson.model.DirectoryBrowserSupport.CSP=

그런 다음 Jenkins 서비스를 다시 시작하여 변경 사항을 적용합니다.


답변

Vall에 지정된대로 groovy 명령을 사용하여이 문제를 해결할 수 있습니다. 의 답변에 .

효과는 Jenkins가 다시 시작될 때까지 적용되며 나중에 다시 수행해야합니다.

이 문제를 해결하는 해결책은 젠킨스가 시작될 때마다이를 수행 할 작업을 구성하는 것입니다.

시작 트리거 플러그인 을 사용하여이 작업을 수행 할 수 있습니다 .

설치 후 새 작업을 만들고 확인해야 할 빌드 트리거 섹션 아래에 새 확인란이 생깁니다 .

그런 다음 다음 명령으로 Execute system Groovy 스크립트 빌드 단계를 추가합니다.

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

저장하면 모든 것이 작동합니다.


답변

우분투 14 버전의 경우 특별한 플러그인이 유용했습니다.

https://wiki.jenkins-ci.org/display/JENKINS/Startup+Trigger- 젠킨스 시작시 작업 시작

https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin-System Groovy 스크립트 실행

그리고 Jenkins를 다시 시작하고 매개 변수를 설정하는 작업을 수행했습니다.

Jenkins가 실행 된 후 빌드를 시작하도록 설정

그리고 parametr를 설정하기 위해 시스템 Groovy 스크립트를 추가했습니다.
시스템 Groovy 스크립트 실행
System.setProperty ( “hudson.model.DirectoryBrowserSupport.CSP”, “sandbox; img-src ‘self’;”)


답변

이동

Jenkins 관리-> 스크립트 콘솔

다음 명령을 입력하십시오.

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

그런 다음 실행을 누릅니다. ‘결과’로 출력을 받으면 HTML 보고서 형식을 확인하여 빌드를 다시 실행하십시오.