diff --git a/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/GitGraphServlet.java b/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/GitGraphServlet.java
index 50ee03a..f11d989 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/GitGraphServlet.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/branchnetwork/canvas/GitGraphServlet.java
@@ -24,15 +24,12 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.eclipse.jgit.errors.RepositoryNotFoundException;
-import org.eclipse.jgit.lib.Config;
 import org.eclipse.jgit.lib.Repository;
 
-import com.google.common.base.Objects;
 import com.google.gerrit.common.data.GitWebType;
-import com.google.gerrit.extensions.annotations.PluginName;
+import com.google.gerrit.extensions.annotations.PluginCanonicalWebUrl;
 import com.google.gerrit.httpd.GitWebConfig;
 import com.google.gerrit.reviewdb.client.Project;
-import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.gerrit.server.git.GitRepositoryManager;
 import com.google.gerrit.server.project.NoSuchProjectException;
 import com.google.gerrit.server.project.ProjectControl;
@@ -50,21 +47,17 @@
   private Factory projectControl;
   private GitRepositoryManager repoManager;
   private GitWebConfig gitWebConfig;
-  private String canonicalWebUrl;
+  private String pluginCanonicalWebUrl;
 
   @Inject
-  public GitGraphServlet(@PluginName String pluginName,
-      @GerritServerConfig final Config gerritConfig, GitWebConfig gitWebConfig,
+  public GitGraphServlet(@PluginCanonicalWebUrl String url,
+      GitWebConfig gitWebConfig,
       final ProjectControl.Factory projectControl,
       final GitRepositoryManager repoManager)
       throws MalformedURLException {
-    this.canonicalWebUrl =
-        Objects.firstNonNull(gerritConfig.getString("gerrit", null, "canonicalWebUrl"), "/");
-    if(!canonicalWebUrl.endsWith("/")) {
-      canonicalWebUrl += "/";
-    }
-    this.canonicalPath =
-        String.format("%splugins/%s/", (new URL(canonicalWebUrl)).getPath(), pluginName);
+    this.canonicalPath = new URL(url).getPath();
+    this.pluginCanonicalWebUrl =
+        url.substring(0, url.length() - (canonicalPath.length() - 1));
     this.projectControl = projectControl;
     this.repoManager = repoManager;
     this.gitWebConfig = gitWebConfig;
@@ -133,10 +126,10 @@
                     .replaceAll("\\$\\{project\\}", repoName);
 
         commitUrlPattern =
-            (commitUrlPattern.startsWith("/") ? commitUrlPattern : canonicalWebUrl
+            (commitUrlPattern.startsWith("/") ? commitUrlPattern : pluginCanonicalWebUrl
                 + commitUrlPattern);
         projectPattern =
-            (projectPattern.startsWith("/") ? projectPattern : canonicalWebUrl
+            (projectPattern.startsWith("/") ? projectPattern : pluginCanonicalWebUrl
                 + projectPattern);
 
         String header =
