Jenkins - HTML Publisher Plugin - Pas de CSS est affiché que lorsque le rapport est affiché dans Jenkins Serveur
j'ai un étrange problème avec le plugin Jenkins HTML Publisher, où tous les CSS fantaisistes que j'ai ajoutés au rapport sont supprimés lorsqu'ils sont consultés dans Jenkins. Si je télécharge le rapport sur place, je peux voir le formatage CSS. Y a-t-il à Jenkins un environnement qui permet de visualiser les CSS?
les paramètres de mon éditeur HTML dans Jenkins:
Ma Page de Rapport lorsqu'il est affiché dans Jenkins :
Ma Page de Rapport lors de l'affichage en Local :
10 réponses
compris le problème. Partager ici pour les autres utilisateurs.
CSS est retiré à cause de la Politique de sécurité du contenu dans Jenkins. (https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy)
La règle par défaut est défini sur:
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
Cette règle est la suivante:
- Pas de JavaScript permis à tous
- Pas de plugins (object/embed) a permis
- Pas de CSS en ligne, ou CSS d'autres sites autorisés
- Pas d'images à partir d'autres sites autorisés
- Pas de cadres a permis
- Pas de polices web a permis
- Non XHR / AJAX allowed, etc.
pour assouplir cette règle, allez à gérer la console Jenkins->Script et tapez la commande suivante:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
et Appuyez sur Exécuter. Si vous voyez la sortie comme 'Result:' sous l'en-tête 'Result', alors la protection est désactivée. Relisez votre Construction et vous pouvez voir que les nouveaux fichiers HTML archivés auront la CSS activée.
(la solution suivante est pour Windows.)
Une solution permanente est de changer une ligne dans [Jenkins directory]\jenkins.xml
(pour moi, c'est à C:\Jenkins\jenkins.xml
)
<executable>java.exe</executable>
<arguments>[arguments are here]</arguments>
ajouter l'argument suivant à la liste des arguments séparés par des espaces:
-Dhudson.model.DirectoryBrowserSupport.CSP=
puis redémarrez le service Jenkins pour récupérer le changement.
Vous pouvez corriger cela en utilisant la commande groovy comme spécifié dans Vall
https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - Pour exécuter le Système de script Groovy et j'ai fait un travail, qui commence sur Jenkins restart et fixe le paramètre. et ajouté le système Groovy script à ensemble parametr.
Système.setProperty ("hudson.modèle.DirectoryBrowserSupport.CSP", "bac à sable; img src "moi";")
aller à" gérer Jenkins "- > " console de Script" Type et d'exécuter de commande ci-dessous:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
il est trop tard pour répondre mais j'ai pensé à partager.
J'ai eu du mal avec Jenkins déployé sur Tomcat, essayé l'exécution de script, ça aide mais ça disparaît si tomcat est redémarré.
fait la fixation permanente en plaçant la propriété dans catalina.propriétés en tomcat.
fichier de propriétés: tomcat_installation_dir/conf / catalina.propriété Il suffit de copier coller la ligne ci-dessous en catalina.propriétés à la fin (vous pouvez le définir n'importe où juste pour ne pas jouer avec propriétés existantes)
-Dhudson.modèle.DirectoryBrowserSupport.CSP=""
j'ai eu les mêmes problèmes après avoir ajouté HTTPS à mon jenkins. Dans le cas où vous avez le même problème, la solution est facile - définissez votre url Jenkins pour utiliser le protocole HTTPS au lieu de HTTP. Il peut être configuré via jenkins configuration -> jenkins url
Gérer Jenkins --> Script console
et tapez la commande suivante:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
puis appuyez sur Run. si vous obtenez la sortie comme 'résultat', alors relancez la construction vérifiez le format du rapport HTML
Debian / Ubuntu, en aptitude des installations:
sudo vi /etc/default/jenkins
- Ajouter
-Dhudson.model.DirectoryBrowserSupport.CSP=
JAVA_ARGS
(e.g.JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP="
) - Redémarrer jenkins -
service jenkins restart
C'est assez pour moi, mais pour la liste complète des paramètres, voir le cette réponse.