2016-03-03 79 views
32

Jenkins HTML Publisherのプラグインに奇妙な問題があります.Jenkinsで見ると、 。レポートをローカルにダウンロードすると、CSSのフォーマットが表示されます。 JenkinsにCSSを表示させる設定がありますか?Jenkins - HTML Publisher Plugin - Jenkins Serverでレポートを表示するときにCSSが表示されない

ジェンキンスで

マイHTML出版社セッティング:ジェンキンスに表示

enter image description here

マイレポートのページ:ローカルに

enter image description here

マイレポートのページを表示:

enter image description here

+0

[Jenkins HTML Publisher Plugin:Jenkins 1.643との外部リンクはありません](http://stackoverflow.com/questions/34681852/jenkins-html-publisher-plugin -no-external-links-jenkins-1-643) –

答えて

67

問題を解明しました。他のユーザーのためにここで共有します。

CSSがあるためジェンキンスにおけるコンテンツセキュリティポリシーの取り除かれます。このルールセットの結果は以下に

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

::(https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy

デフォルトルールは次のように設定されて

  • ませんJavaScriptがすべて
  • ないプラグイン(オブジェクト/埋め込み)で許可されます許可された
  • インラインCSSがない、または他のサイトのCSSが許可されている
  • いいえi他の サイトからのメイジは
  • んが、フレームが
  • ませウェブフォントが
  • んXHR/AJAXは許され許さない許さない許さなど

Jenkins->スクリプトコンソールを管理するために行く、このルールを緩和することと次のコマンドを入力します。

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

と実行を押します。結果がヘッダーの下に「結果:」と表示された場合、保護は無効になります。ビルドを再実行すると、アーカイブされた新しいHTMLファイルにCSSが有効になっていることがわかります。

+0

ありがとうございました!!!それは私がジェンキンズに持っていたこのCSSの問題を解決するのに本当に役立ちました。 –

+6

これを永久に設定する方法はありますか? – Steerpike

+1

@Steerpikeあなたが何を意味しているのか疑問に思って、Jenkinsの再起動時にCSSがブロックされていることがわかりました。そこで12時間ごとにコマンドを実行するJenkinsジョブを作成しました。そのトリックをするようだ。 – Aeropher

5

(次のソリューションは、Windows用です。)

永久修正は[Jenkins directory]\jenkins.xmlで行を変更することです(私にとって、それはC:\Jenkins\jenkins.xmlでだ)

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

空白区切りに次の引数を追加します。引数リスト:

-Dhudson.model.DirectoryBrowserSupport.CSP= 

次に、変更を取得するためにJenkinsサービスを再起動します。

3

これは、Vallの答えで指定されたgroovyコマンドを使用して修正できます。

効果はJenkinsが再起動するまで有効ですが、その後はもう一度やり直す必要があります。

この問題を解決するソリューションは、ジェンキンが起動するたびにこれを行うジョブを設定することです。

Startup Trigger pluginを使用してこれを行うことができます。

新しいジョブを作成したら、Build Triggersセクションの下に新しいチェックボックスがありますので、チェックする必要があります。

その後のコマンドで実行し、システムのGroovyスクリプトビルドステップを追加:

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

保存し、すべてが動作するはずです。ジェンキンス起動

https://wiki.jenkins-ci.org/display/JENKINS/Groovy+pluginにジョブを開始するには - -

https://wiki.jenkins-ci.org/display/JENKINS/Startup+TriggerシステムのGroovyスクリプト

を実行すると私はジェンキンスで開始仕事をし、作っ:Ubuntuの14バージョン役立つために

1

は、特別なプラグインでした再起動し、パラメータを設定します。

set to start build after Jenkins is ran

そしてparametrを設定するには、追加したシステムのGroovyスクリプト。 Run System Groovy scriptするSystem.setProperty( "hudson.model.DirectoryBrowserSupport.CSP"、 "サンドボックス; IMG SRC- '自己';")のCentOS

+0

ジョブの実行は正常に完了しましたが、レポートにCSS表示を有効にしません。私は "Script Console"でまったく同じGroovyスクリプトを実行し、うまくいきました。他に何ができますか?この仕事の面白いスクリプトは、実際の親Jenkinのプロパティを変更していません。 – frakman1

+0

@ frakman1この瞬間に私のGroovyスクリプトは次のようになります。 - System.setProperty( "hudson.model.DirectoryBrowserSupport.CSP"、 "") しかし、それだけですべてが動作します。管理者ユーザーがいない可能性がありますか? – abiab

+0

ありがとうございました。私は結局それを働かせました。私はこのスクリプトを代わりに使用しなければなりませんでした: 'System.setProperty(" hudson.model.DirectoryBrowserSupport.CSP "、" sandbox allow-same-origin allowスクリプト、default-src 'self'、script-src * 'unsafe-eval' ; img-src *; style-src * 'unsafe-inline'; font-src * ")' – frakman1

3

、HTMLレポート

  • で画像を有効にします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:;\""

に次 sudo vi /etc/sysconfig/jenkins
  • セット

    これはjenkinサーバーを再起動しても機能します。

    指令

    デフォルト-srcのデフォルト-srcは、このようなJavaScriptの、イメージ、CSS、フォント、AJAXリクエスト、フレーム、HTML5メディア

    としてロードするコンテンツのデフォルトのポリシーです

    IMG SRC-:は、画像の有効なソースを定義します。

    ソース値

    '自己' -は同じ起源(同じスキーム、ホストおよびポート)からロードするリソースを可能にします。

    使用:default-src 'self'

    「危険インライン」からはonclickの、そのようなスタイル属性としてインラインソース要素の使用を可能にする、またはスクリプトタグ体は(それが適用されるソースの文脈に依存)とjavascript:URIを使用します。

    使用:default-src 'unsafe-inline'

    '危険-EVAL'からは、JavaScriptの評価()のような危険な動的コード評価を可能

    使用:default-src 'unsafe-eval'

    データ:からデータスキーム(Base64でエンコードされたイメージなど)を介してリソースを読み込むことができます。

    使用法:img-src 'self' data:

    aptitude installationsで、のDebian/Ubuntuの上のコンテンツセキュリティポリシーについてhere

  • +0

    私のために働く唯一のもの – Adiii

    -1

    をより多くを参照してください:

    • sudo vi /etc/default/jenkins
    • を追加します。からJAVA_ARGS(例えば、 JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP="
    • 再起動ジェンキンス - service jenkins restart

    これは私にとっては十分だったが、パラメータの完全なリストについては、this answerを参照してください。

    0

    応答が遅すぎますが、共有すると考えていました。私はジェンキンスで苦しんでいた

    は、Tomcat上に配備スクリプトの実行を試みたが、それは役立ちますが、Tomcatのが再起動された場合に消えます。

    tomcatのcatalina.propertiesにプロパティを設定して永続的な修正を行いました。

    プロパティファイル:tomcat_installation_dir/confに/ catalina.propertiesを ちょうど(あなただけの既存のプロパティと混乱しないようにどこにでも設定することができます)最後

    -Dhudson.modelでcatalina.propertiesで以下の行をコピー&ペースト.DirectoryBrowserSupport.CSP =「」

    0

    は、私は私のジェンキンスにHTTPSを追加した後に同じ問題を抱えていました。あなたが同じ問題を抱えている場合、解決策は簡単です - JenkinsのURLをHTTPの代わりにHTTPSプロトコルを使用するように設定します。 jenkinsの設定 - > jenkins url

    関連する問題