diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 720312c88c..cefe42a14c 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -2336,6 +2336,10 @@ public class Functions { } if (iconMetadata == null) { + if (!iconGuess.startsWith("/") && !iconGuess.startsWith("http")) { + iconGuess = "/" + iconGuess; + } + iconSource = rootURL + (iconGuess.startsWith("/images/") || iconGuess.startsWith("/plugin/") ? getResourcePath() : "") + iconGuess; } diff --git a/test/src/test/java/lib/layout/IconTest.java b/test/src/test/java/lib/layout/IconTest.java index b54ffffd80..478cf76da4 100644 --- a/test/src/test/java/lib/layout/IconTest.java +++ b/test/src/test/java/lib/layout/IconTest.java @@ -151,7 +151,7 @@ public class IconTest { assertIconToSymbolOkay(taskDivs.get(5).getElementsByTagName("svg").get(0)); assertIconToImageOkay(taskDivs.get(6).getElementsByTagName("img").get(0), "/plugin/xxx/icon.png"); - assertIconToImageOkay(taskDivs.get(7).getElementsByTagName("img").get(0), "plugin/xxx/icon.png"); + assertIconToImageOkay(taskDivs.get(7).getElementsByTagName("img").get(0), "/plugin/xxx/icon.png"); } @TestExtension("testTasks")