Jenkins Dockerの内部的なインフラストラクチャで同じ問題が発生しましたが、Jenkins Dockerイメージではドキュメントに従って実行し、XSLTファイルとそのXSLTを参照するXMLファイルを生成するパイプラインジョブを作成すると簡単に再現できますファイル。 ノード割り当てノード:開始のワークスペースフォルダからXMLを開くと、質問に記載されているエラーが出力されます。
の読み込みエラースタイルシート:ネットワークエラーがXSLTスタイルシートを読み込み発生しましたhttp://build:8080/view/application/job/Project/Report/SourceMonitor.xslt
解決
この
は、のようなものを見て、だけでなく、Firefoxがエラーを報告しますようもののChromeはに限定されるものではありませんこれはJenkinsが使用するコンテンツセキュリティポリシー(CSP)を構成するための問題です。コンテンツセキュリティポリシーの仕組みは、
Stackoverflow: How does Content Security Policy work?で説明しています。
JenkinsのデフォルトのCSP設定は非常に厳密で、参照するドキュメントからXSLファイルを読み込むことはできません。デフォルトのCSP設定とそれを変更する方法は、Jenkins wikiページに記載されています。
は、CSPドキュメント(CR-CSP-20121115章4.2スクリプト-SRC)によると、XSLスタイルシートは、スクリプトとして扱われ、私はシンプルなXSLスタイルシートを機能させるために、デフォルトの設定にscript-src 'self';
とsandbox allow-same-origin;
を追加する必要がありました。それは、すべてのジェンキンスのwikiページに文書化され、次の再起動まで一時的にCSPを変更
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","sandbox allow-same-origin; default-src 'none'; img-src 'self'; style-src 'self'; script-src 'self';")
をSystem.setProperty
を使用する:私は実行することにより、ジェンキンススクリプトコンソールを経由してこれをしませんでした。
XSLTファイルのコンテンツでは、スタイルタグの解釈を許可するなど、他のCSPルールも緩和する必要があるため、Chromeや他のブラウザから報告されるエラーを探します。