diff --git a/java/com/google/gitiles/DefaultErrorHandlingFilter.java b/java/com/google/gitiles/DefaultErrorHandlingFilter.java
index ec52bb9..f3e04ea 100644
--- a/java/com/google/gitiles/DefaultErrorHandlingFilter.java
+++ b/java/com/google/gitiles/DefaultErrorHandlingFilter.java
@@ -97,7 +97,8 @@
       HttpServletRequest req, HttpServletResponse res, int status, String message)
       throws IOException {
     res.setStatus(status);
-    renderHtml(req, res, "gitiles.error", ImmutableMap.of("title", message));
+    renderHtml(
+        req, res, "com.google.gitiles.templates.Error.error", ImmutableMap.of("title", message));
   }
 
   protected void renderHtml(
diff --git a/java/com/google/gitiles/DiffServlet.java b/java/com/google/gitiles/DiffServlet.java
index 5a9f07b..03353ac 100644
--- a/java/com/google/gitiles/DiffServlet.java
+++ b/java/com/google/gitiles/DiffServlet.java
@@ -106,7 +106,9 @@
       }
 
       setCacheHeaders(req, res);
-      try (OutputStream out = startRenderStreamingHtml(req, res, "gitiles.diffDetail", data);
+      try (OutputStream out =
+              startRenderStreamingHtml(
+                  req, res, "com.google.gitiles.templates.DiffDetail.diffDetail", data);
           DiffFormatter diff = new HtmlDiffFormatter(renderer, view, out)) {
         formatDiff(repo, oldTree, newTree, view.getPathPart(), diff);
       }
diff --git a/java/com/google/gitiles/HostIndexServlet.java b/java/com/google/gitiles/HostIndexServlet.java
index 6851688..93ff9d0 100644
--- a/java/com/google/gitiles/HostIndexServlet.java
+++ b/java/com/google/gitiles/HostIndexServlet.java
@@ -129,7 +129,7 @@
     renderHtml(
         req,
         res,
-        "gitiles.hostIndex",
+        "com.google.gitiles.templates.HostIndex.hostIndex",
         ImmutableMap.of(
             "hostName",
             hostName,
diff --git a/java/com/google/gitiles/HtmlDiffFormatter.java b/java/com/google/gitiles/HtmlDiffFormatter.java
index 1467d42..76df04c 100644
--- a/java/com/google/gitiles/HtmlDiffFormatter.java
+++ b/java/com/google/gitiles/HtmlDiffFormatter.java
@@ -109,7 +109,7 @@
     getOutputStream()
         .write(
             renderer
-                .newRenderer("gitiles.diffHeader")
+                .newRenderer("com.google.gitiles.templates.DiffDetail.diffHeader")
                 .setData(ImmutableMap.of("firstParts", parts, "rest", rest, "fileIndex", fileIndex))
                 .renderHtml()
                 .get()
diff --git a/java/com/google/gitiles/LogServlet.java b/java/com/google/gitiles/LogServlet.java
index 645264b..51ab68d 100644
--- a/java/com/google/gitiles/LogServlet.java
+++ b/java/com/google/gitiles/LogServlet.java
@@ -124,7 +124,9 @@
 
       data.put("title", title);
 
-      try (OutputStream out = startRenderStreamingHtml(req, res, "gitiles.logDetail", data)) {
+      try (OutputStream out =
+          startRenderStreamingHtml(
+              req, res, "com.google.gitiles.templates.LogDetail.logDetail", data)) {
         Writer w = newWriter(out, res);
         new LogSoyData(req, access, pretty)
             .renderStreaming(paginator, null, renderer, w, df, LogSoyData.FooterBehavior.NEXT);
diff --git a/java/com/google/gitiles/LogSoyData.java b/java/com/google/gitiles/LogSoyData.java
index dc782ab..34b290f 100644
--- a/java/com/google/gitiles/LogSoyData.java
+++ b/java/com/google/gitiles/LogSoyData.java
@@ -93,23 +93,24 @@
     LoggingAdvisingAppendable out = LoggingAdvisingAppendable.delegating(writer);
     renderHtml(
         renderer
-            .newRenderer("gitiles.logEntriesHeader")
+            .newRenderer("com.google.gitiles.templates.LogDetail.logEntriesHeader")
             .setData(toHeaderSoyData(paginator, revision)),
         out);
 
-    SoySauce.Renderer entryRenderer = renderer.newRenderer("gitiles.logEntryWrapper");
+    SoySauce.Renderer entryRenderer =
+        renderer.newRenderer("com.google.gitiles.templates.LogDetail.logEntryWrapper");
     boolean renderedEntries = false;
     for (RevCommit c : paginator) {
       renderHtml(entryRenderer.setData(toEntrySoyData(paginator, c, df)), out);
       renderedEntries = true;
     }
     if (!renderedEntries) {
-      renderHtml(renderer.newRenderer("gitiles.emptyLog"), out);
+      renderHtml(renderer.newRenderer("com.google.gitiles.templates.LogDetail.emptyLog"), out);
     }
 
     renderHtml(
         renderer
-            .newRenderer("gitiles.logEntriesFooter")
+            .newRenderer("com.google.gitiles.templates.LogDetail.logEntriesFooter")
             .setData(toFooterSoyData(paginator, revision, footerBehavior)),
         out);
   }
diff --git a/java/com/google/gitiles/PathServlet.java b/java/com/google/gitiles/PathServlet.java
index 26de757..4054332 100644
--- a/java/com/google/gitiles/PathServlet.java
+++ b/java/com/google/gitiles/PathServlet.java
@@ -68,6 +68,7 @@
 
   static final String MODE_HEADER = "X-Gitiles-Path-Mode";
   static final String TYPE_HEADER = "X-Gitiles-Object-Type";
+  static final String PATH_DETAIL = "com.google.gitiles.templates.PathDetail.pathDetail";
 
   /**
    * Submodule URLs where we know there is a web page if the user visits the repository URL verbatim
@@ -486,7 +487,7 @@
     renderHtml(
         req,
         res,
-        "gitiles.pathDetail",
+        PATH_DETAIL,
         ImmutableMap.of(
             "title", !view.getPathPart().isEmpty() ? view.getPathPart() : "/",
             "breadcrumbs", view.getBreadcrumbs(wr.hasSingleTree),
@@ -515,7 +516,7 @@
     renderHtml(
         req,
         res,
-        "gitiles.pathDetail",
+        PATH_DETAIL,
         ImmutableMap.of(
             "title", ViewFilter.getView(req).getPathPart(),
             "breadcrumbs", view.getBreadcrumbs(wr.hasSingleTree),
@@ -541,7 +542,7 @@
       renderHtml(
           req,
           res,
-          "gitiles.pathDetail",
+          PATH_DETAIL,
           ImmutableMap.of(
               "title", ViewFilter.getView(req).getPathPart(),
               "breadcrumbs", view.getBreadcrumbs(wr.hasSingleTree),
@@ -564,7 +565,7 @@
     renderHtml(
         req,
         res,
-        "gitiles.pathDetail",
+        PATH_DETAIL,
         ImmutableMap.of(
             "title", ViewFilter.getView(req).getPathPart(),
             "breadcrumbs", view.getBreadcrumbs(wr.hasSingleTree),
@@ -621,7 +622,7 @@
     renderHtml(
         req,
         res,
-        "gitiles.pathDetail",
+        PATH_DETAIL,
         ImmutableMap.of(
             "title", view.getPathPart(),
             "type", FileType.GITLINK.toString(),
diff --git a/java/com/google/gitiles/RefServlet.java b/java/com/google/gitiles/RefServlet.java
index fd93126..0df7323 100644
--- a/java/com/google/gitiles/RefServlet.java
+++ b/java/com/google/gitiles/RefServlet.java
@@ -68,7 +68,7 @@
     renderHtml(
         req,
         res,
-        "gitiles.refsDetail",
+        "com.google.gitiles.templates.RefList.refsDetail",
         ImmutableMap.of("branches", getBranchesSoyData(req, 0), "tags", tags));
   }
 
diff --git a/java/com/google/gitiles/RepositoryIndexServlet.java b/java/com/google/gitiles/RepositoryIndexServlet.java
index d057512..0360588 100644
--- a/java/com/google/gitiles/RepositoryIndexServlet.java
+++ b/java/com/google/gitiles/RepositoryIndexServlet.java
@@ -129,7 +129,8 @@
       if (paginator != null) {
         DateFormatter df = new DateFormatter(access, Format.DEFAULT);
         try (OutputStream out =
-            startRenderStreamingHtml(req, res, "gitiles.repositoryIndex", data)) {
+            startRenderStreamingHtml(
+                req, res, "com.google.gitiles.templates.RepositoryIndex.repositoryIndex", data)) {
           Writer w = newWriter(out, res);
           new LogSoyData(req, access, "oneline")
               .renderStreaming(
@@ -137,7 +138,7 @@
           w.flush();
         }
       } else {
-        renderHtml(req, res, "gitiles.repositoryIndex", data);
+        renderHtml(req, res, "com.google.gitiles.templates.RepositoryIndex.repositoryIndex", data);
       }
     }
   }
diff --git a/java/com/google/gitiles/RevisionServlet.java b/java/com/google/gitiles/RevisionServlet.java
index 38aecb6..3aeb352 100644
--- a/java/com/google/gitiles/RevisionServlet.java
+++ b/java/com/google/gitiles/RevisionServlet.java
@@ -134,7 +134,7 @@
       renderHtml(
           req,
           res,
-          "gitiles.revisionDetail",
+          "com.google.gitiles.templates.RevisionDetail.revisionDetail",
           ImmutableMap.of(
               "title", view.getRevision().getName(),
               "objects", soyObjects,
diff --git a/java/com/google/gitiles/blame/BlameServlet.java b/java/com/google/gitiles/blame/BlameServlet.java
index ab9cd95..9dd5e91 100644
--- a/java/com/google/gitiles/blame/BlameServlet.java
+++ b/java/com/google/gitiles/blame/BlameServlet.java
@@ -86,7 +86,7 @@
         renderHtml(
             req,
             res,
-            "gitiles.blameDetail",
+            "com.google.gitiles.templates.BlameDetail.blameDetail",
             ImmutableMap.of(
                 "title",
                 title,
@@ -100,7 +100,7 @@
         renderHtml(
             req,
             res,
-            "gitiles.blameDetail",
+            "com.google.gitiles.templates.BlameDetail.blameDetail",
             ImmutableMap.of(
                 "title", title,
                 "breadcrumbs", view.getBreadcrumbs(),
diff --git a/java/com/google/gitiles/doc/DocServlet.java b/java/com/google/gitiles/doc/DocServlet.java
index 0cbea50..4def176 100644
--- a/java/com/google/gitiles/doc/DocServlet.java
+++ b/java/com/google/gitiles/doc/DocServlet.java
@@ -60,7 +60,7 @@
   private static final String INDEX_MD = "index.md";
   private static final String NAVBAR_MD = "navbar.md";
   private static final String SOY_FILE = "Doc.soy";
-  private static final String SOY_TEMPLATE = "gitiles.markdownDoc";
+  private static final String SOY_TEMPLATE = "com.google.gitiles.templates.Doc.markdownDoc";
 
   // Generation of ETag logic. Bump this only if DocServlet logic changes
   // significantly enough to impact cached pages. Soy template and source
