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
diff --git a/resources/com/google/gitiles/templates/BlameDetail.soy b/resources/com/google/gitiles/templates/BlameDetail.soy
index 1589056..507b00f 100644
--- a/resources/com/google/gitiles/templates/BlameDetail.soy
+++ b/resources/com/google/gitiles/templates/BlameDetail.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.BlameDetail}
 
 import * as common from 'com/google/gitiles/templates/Common.soy';
 import * as objDetail from 'com/google/gitiles/templates/ObjectDetail.soy';
diff --git a/resources/com/google/gitiles/templates/Common.soy b/resources/com/google/gitiles/templates/Common.soy
index 86116cb..c89f73c 100644
--- a/resources/com/google/gitiles/templates/Common.soy
+++ b/resources/com/google/gitiles/templates/Common.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.Common}
 
 /**
  * Common header for Gitiles.
diff --git a/resources/com/google/gitiles/templates/DiffDetail.soy b/resources/com/google/gitiles/templates/DiffDetail.soy
index 519ed77..afe63e8 100644
--- a/resources/com/google/gitiles/templates/DiffDetail.soy
+++ b/resources/com/google/gitiles/templates/DiffDetail.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.DiffDetail}
 
 import * as common from 'com/google/gitiles/templates/Common.soy';
 import * as objDetail from 'com/google/gitiles/templates/ObjectDetail.soy';
diff --git a/resources/com/google/gitiles/templates/Doc.soy b/resources/com/google/gitiles/templates/Doc.soy
index 570ef8f..db46994 100644
--- a/resources/com/google/gitiles/templates/Doc.soy
+++ b/resources/com/google/gitiles/templates/Doc.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.Doc}
 
 import * as common from 'com/google/gitiles/templates/Common.soy';
 
diff --git a/resources/com/google/gitiles/templates/Error.soy b/resources/com/google/gitiles/templates/Error.soy
index 7ca5024..c8ebc9e 100644
--- a/resources/com/google/gitiles/templates/Error.soy
+++ b/resources/com/google/gitiles/templates/Error.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.Error}
 
 import * as common from 'com/google/gitiles/templates/Common.soy';
 
diff --git a/resources/com/google/gitiles/templates/HostIndex.soy b/resources/com/google/gitiles/templates/HostIndex.soy
index a8d84f8..846904a 100644
--- a/resources/com/google/gitiles/templates/HostIndex.soy
+++ b/resources/com/google/gitiles/templates/HostIndex.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.HostIndex}
 
 import * as common from 'com/google/gitiles/templates/Common.soy';
 
diff --git a/resources/com/google/gitiles/templates/LogDetail.soy b/resources/com/google/gitiles/templates/LogDetail.soy
index d79f25a..23ae8eb 100644
--- a/resources/com/google/gitiles/templates/LogDetail.soy
+++ b/resources/com/google/gitiles/templates/LogDetail.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.LogDetail}
 
 import * as common from 'com/google/gitiles/templates/Common.soy';
 import * as objDetail from 'com/google/gitiles/templates/ObjectDetail.soy';
diff --git a/resources/com/google/gitiles/templates/ObjectDetail.soy b/resources/com/google/gitiles/templates/ObjectDetail.soy
index 4fc4b99..3d3c6e4 100644
--- a/resources/com/google/gitiles/templates/ObjectDetail.soy
+++ b/resources/com/google/gitiles/templates/ObjectDetail.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.ObjectDetail}
 
 /**
  * Detailed listing of a commit.
diff --git a/resources/com/google/gitiles/templates/PathDetail.soy b/resources/com/google/gitiles/templates/PathDetail.soy
index fb0936b..3b5c9be 100644
--- a/resources/com/google/gitiles/templates/PathDetail.soy
+++ b/resources/com/google/gitiles/templates/PathDetail.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.PathDetail}
 
 import * as common from 'com/google/gitiles/templates/Common.soy';
 import * as objDetail from 'com/google/gitiles/templates/ObjectDetail.soy';
diff --git a/resources/com/google/gitiles/templates/RefList.soy b/resources/com/google/gitiles/templates/RefList.soy
index 47b7fdb..15b996a 100644
--- a/resources/com/google/gitiles/templates/RefList.soy
+++ b/resources/com/google/gitiles/templates/RefList.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.RefList}
 
 import * as common from 'com/google/gitiles/templates/Common.soy';
 
diff --git a/resources/com/google/gitiles/templates/RepositoryIndex.soy b/resources/com/google/gitiles/templates/RepositoryIndex.soy
index 64ccfbd..ac1ab56 100644
--- a/resources/com/google/gitiles/templates/RepositoryIndex.soy
+++ b/resources/com/google/gitiles/templates/RepositoryIndex.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.RepositoryIndex}
 
 import * as common from 'com/google/gitiles/templates/Common.soy';
 import * as refList from 'com/google/gitiles/templates/RefList.soy';
diff --git a/resources/com/google/gitiles/templates/RevisionDetail.soy b/resources/com/google/gitiles/templates/RevisionDetail.soy
index e520990..7c1f1fd 100644
--- a/resources/com/google/gitiles/templates/RevisionDetail.soy
+++ b/resources/com/google/gitiles/templates/RevisionDetail.soy
@@ -11,7 +11,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-{namespace gitiles}
+{namespace com.google.gitiles.templates.RevisionDetail}
 
 import * as common from 'com/google/gitiles/templates/Common.soy';
 import * as objDetail from 'com/google/gitiles/templates/ObjectDetail.soy';
