diff --git a/swh/web/browse/snapshot_context.py b/swh/web/browse/snapshot_context.py
--- a/swh/web/browse/snapshot_context.py
+++ b/swh/web/browse/snapshot_context.py
@@ -937,7 +937,7 @@
 
     return render(
         request,
-        "browse/directory.html",
+        "browse-directory.html",
         {
             "heading": heading,
             "swh_object_name": "Directory",
@@ -1095,7 +1095,7 @@
 
     return render(
         request,
-        "browse/revision-log.html",
+        "browse-revision-log.html",
         {
             "heading": heading,
             "swh_object_name": "Revisions history",
@@ -1217,7 +1217,7 @@
 
     return render(
         request,
-        "browse/branches.html",
+        "browse-branches.html",
         {
             "heading": heading,
             "swh_object_name": "Branches",
@@ -1360,7 +1360,7 @@
 
     return render(
         request,
-        "browse/releases.html",
+        "browse-releases.html",
         {
             "heading": heading,
             "top_panel_visible": False,
diff --git a/swh/web/templates/browse/branches.html b/swh/web/browse/templates/browse-branches.html
rename from swh/web/templates/browse/branches.html
rename to swh/web/browse/templates/browse-branches.html
--- a/swh/web/templates/browse/branches.html
+++ b/swh/web/browse/templates/browse-branches.html
@@ -1,7 +1,7 @@
 {% extends "./browse.html" %}
 
 {% comment %}
-Copyright (C) 2017-2019  The Software Heritage developers
+Copyright (C) 2017-2022  The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
@@ -13,7 +13,7 @@
 {% block swh-browse-content %}
   <div class="table-responsive mt-3 mb-3">
     <div class="form-group row float-right">
-      {% include "includes/branch-search.html" %}
+      {% include "./includes/branch-search.html" %}
     </div>
     <table class="table swh-table swh-table-striped">
       <thead>
diff --git a/swh/web/templates/browse/content.html b/swh/web/browse/templates/browse-content.html
rename from swh/web/templates/browse/content.html
rename to swh/web/browse/templates/browse-content.html
--- a/swh/web/templates/browse/content.html
+++ b/swh/web/browse/templates/browse-content.html
@@ -1,13 +1,13 @@
 {% extends "./browse.html" %}
 
 {% comment %}
-Copyright (C) 2017-2018  The Software Heritage developers
+Copyright (C) 2017-2022  The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
 {% endcomment %}
 
 {% block swh-browse-content %}
-{% include "includes/top-navigation.html" %}
-{% include "includes/content-display.html" %}
+{% include "./includes/top-navigation.html" %}
+{% include "./includes/content-display.html" %}
 {% endblock %}
diff --git a/swh/web/templates/browse/directory.html b/swh/web/browse/templates/browse-directory.html
rename from swh/web/templates/browse/directory.html
rename to swh/web/browse/templates/browse-directory.html
--- a/swh/web/templates/browse/directory.html
+++ b/swh/web/browse/templates/browse-directory.html
@@ -1,17 +1,17 @@
 {% extends "./browse.html" %}
 
 {% comment %}
-Copyright (C) 2017-2018  The Software Heritage developers
+Copyright (C) 2017-2022  The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
 {% endcomment %}
 
 {% block swh-browse-content %}
-{% include "includes/top-navigation.html" %}
-{% include "includes/directory-display.html" %}
+{% include "./includes/top-navigation.html" %}
+{% include "./includes/directory-display.html" %}
 {% endblock %}
 
 {% block swh-browse-after-content %}
-{% include "includes/readme-display.html" %}
+{% include "./includes/readme-display.html" %}
 {% endblock %}
diff --git a/swh/web/templates/browse/help.html b/swh/web/browse/templates/browse-help.html
rename from swh/web/templates/browse/help.html
rename to swh/web/browse/templates/browse-help.html
diff --git a/swh/web/templates/browse/origin-visits.html b/swh/web/browse/templates/browse-origin-visits.html
rename from swh/web/templates/browse/origin-visits.html
rename to swh/web/browse/templates/browse-origin-visits.html
diff --git a/swh/web/templates/browse/release.html b/swh/web/browse/templates/browse-release.html
rename from swh/web/templates/browse/release.html
rename to swh/web/browse/templates/browse-release.html
--- a/swh/web/templates/browse/release.html
+++ b/swh/web/browse/templates/browse-release.html
@@ -1,7 +1,7 @@
 {% extends "./browse.html" %}
 
 {% comment %}
-Copyright (C) 2017-2019  The Software Heritage developers
+Copyright (C) 2017-2022  The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
@@ -10,7 +10,7 @@
 {% load swh_templatetags %}
 
 {% block swh-browse-content %}
-{% include "includes/top-navigation.html" %}
+{% include "./includes/top-navigation.html" %}
 <div style="height: 35px;margin: 4px;">
   <i class="{{ swh_object_icons.release }} mdi-fw" aria-hidden="true"></i>Release <b>{{ swh_object_metadata.name }}</b>
   created by {{ swh_object_metadata.author_url }} on <b>{{ swh_object_metadata.date }}</b>
diff --git a/swh/web/templates/browse/releases.html b/swh/web/browse/templates/browse-releases.html
rename from swh/web/templates/browse/releases.html
rename to swh/web/browse/templates/browse-releases.html
--- a/swh/web/templates/browse/releases.html
+++ b/swh/web/browse/templates/browse-releases.html
@@ -1,7 +1,7 @@
 {% extends "./browse.html" %}
 
 {% comment %}
-Copyright (C) 2017-2021 The Software Heritage developers
+Copyright (C) 2017-2022 The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
@@ -12,7 +12,7 @@
 {% block swh-browse-content %}
   <div class="table-responsive mt-3 mb-3">
     <div class="form-group row float-right">
-      {% include "includes/branch-search.html" %}
+      {% include "./includes/branch-search.html" %}
     </div>
     <table class="table swh-table swh-table-striped">
       <thead>
diff --git a/swh/web/templates/browse/revision-log.html b/swh/web/browse/templates/browse-revision-log.html
rename from swh/web/templates/browse/revision-log.html
rename to swh/web/browse/templates/browse-revision-log.html
--- a/swh/web/templates/browse/revision-log.html
+++ b/swh/web/browse/templates/browse-revision-log.html
@@ -1,7 +1,7 @@
 {% extends "./browse.html" %}
 
 {% comment %}
-Copyright (C) 2017-2019  The Software Heritage developers
+Copyright (C) 2017-2022  The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
@@ -17,11 +17,11 @@
 
 {% block swh-browse-content %}
 {% if snapshot_context %}
-  {% include "includes/top-navigation.html" %}
+  {% include "./includes/top-navigation.html" %}
 {% endif %}
 
 {% if snapshot_context and snapshot_context.is_empty %}
-  {% include "includes/empty-snapshot.html" %}
+  {% include "./includes/empty-snapshot.html" %}
 {% else %}
 
   <hr class="mt-0 mb-0">
diff --git a/swh/web/templates/browse/revision.html b/swh/web/browse/templates/browse-revision.html
rename from swh/web/templates/browse/revision.html
rename to swh/web/browse/templates/browse-revision.html
--- a/swh/web/templates/browse/revision.html
+++ b/swh/web/browse/templates/browse-revision.html
@@ -1,7 +1,7 @@
 {% extends "./browse.html" %}
 
 {% comment %}
-Copyright (C) 2017-2019  The Software Heritage developers
+Copyright (C) 2017-2022  The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
@@ -57,11 +57,11 @@
 
 <div class="tab-content">
   <div id="swh-revision-tree" class="tab-pane active">
-    {% include "includes/top-navigation.html" %}
+    {% include "./includes/top-navigation.html" %}
     {% if content_size %}
-      {% include "includes/content-display.html" %}
+      {% include "./includes/content-display.html" %}
     {% else %}
-      {% include "includes/directory-display.html" %}
+      {% include "./includes/directory-display.html" %}
     {% endif %}
   </div>
 
@@ -107,5 +107,5 @@
 {% endblock %}
 
 {% block swh-browse-after-content %}
-{% include "includes/readme-display.html" %}
+{% include "./includes/readme-display.html" %}
 {% endblock %}
diff --git a/swh/web/templates/browse/search.html b/swh/web/browse/templates/browse-search.html
rename from swh/web/templates/browse/search.html
rename to swh/web/browse/templates/browse-search.html
--- a/swh/web/templates/browse/search.html
+++ b/swh/web/browse/templates/browse-search.html
@@ -1,7 +1,7 @@
-{% extends "./layout.html" %}
+{% extends "./browse.html" %}
 
 {% comment %}
-Copyright (C) 2017-2020  The Software Heritage developers
+Copyright (C) 2017-2022  The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
@@ -15,7 +15,7 @@
 
 {% block browse-content %}
 
-{% include "includes/origin-search-form.html" %}
+{% include "./includes/origin-search-form.html" %}
 <hr>
 <div id="swh-origin-search-results" class="mb-3" style="display: none;">
   <div class="table-responsive">
diff --git a/swh/web/templates/browse/vault-ui.html b/swh/web/browse/templates/browse-vault-ui.html
rename from swh/web/templates/browse/vault-ui.html
rename to swh/web/browse/templates/browse-vault-ui.html
--- a/swh/web/templates/browse/vault-ui.html
+++ b/swh/web/browse/templates/browse-vault-ui.html
@@ -1,7 +1,7 @@
-{% extends "./layout.html" %}
+{% extends "./browse.html" %}
 
 {% comment %}
-Copyright (C) 2017-2019  The Software Heritage developers
+Copyright (C) 2017-2022  The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
@@ -43,7 +43,7 @@
     <tbody></tbody>
   </table>
 </div>
-{% include "includes/vault-common.html" %}
+{% include "./includes/vault-common.html" %}
 <script>
   swh.webapp.initPage('vault');
   swh.vault.initUi();
diff --git a/swh/web/templates/browse/browse.html b/swh/web/browse/templates/browse.html
rename from swh/web/templates/browse/browse.html
rename to swh/web/browse/templates/browse.html
--- a/swh/web/templates/browse/browse.html
+++ b/swh/web/browse/templates/browse.html
@@ -1,16 +1,23 @@
-{% extends "./layout.html" %}
+{% extends "layout.html" %}
 
 {% comment %}
-Copyright (C) 2017-2020  The Software Heritage developers
+Copyright (C) 2017-2022  The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
 {% endcomment %}
 
 {% load swh_templatetags %}
+{% load render_bundle from webpack_loader %}
 
 {% block title %}{{ heading }} &ndash; Software Heritage archive{% endblock %}
 
+{% block header %}
+{% render_bundle 'browse' %}
+{% render_bundle 'vault' %}
+{% render_bundle 'save' %}
+{% endblock %}
+
 {% block navbar-content %}
 
 <h4>
@@ -19,11 +26,12 @@
 
 {% endblock %}
 
+{% block content %}
 {% block browse-content %}
 
 {% block swh-browse-before-content %}
 {% if snapshot_context %}
-  {% include "includes/snapshot-context.html" %}
+  {% include "./includes/snapshot-context.html" %}
 {% endif %}
 {% endblock %}
 
@@ -36,3 +44,4 @@
 </script>
 
 {% endblock %}
+{% endblock %}
diff --git a/swh/web/templates/includes/branch-search.html b/swh/web/browse/templates/includes/branch-search.html
rename from swh/web/templates/includes/branch-search.html
rename to swh/web/browse/templates/includes/branch-search.html
diff --git a/swh/web/templates/includes/breadcrumbs.html b/swh/web/browse/templates/includes/breadcrumbs.html
rename from swh/web/templates/includes/breadcrumbs.html
rename to swh/web/browse/templates/includes/breadcrumbs.html
diff --git a/swh/web/templates/includes/content-display.html b/swh/web/browse/templates/includes/content-display.html
rename from swh/web/templates/includes/content-display.html
rename to swh/web/browse/templates/includes/content-display.html
--- a/swh/web/templates/includes/content-display.html
+++ b/swh/web/browse/templates/includes/content-display.html
@@ -7,10 +7,10 @@
 
 {% load swh_templatetags %}
 
-{% include "includes/revision-info.html" %}
+{% include "./revision-info.html" %}
 
 {% if snapshot_context and snapshot_context.is_empty %}
-  {% include "includes/empty-snapshot.html" %}
+  {% include "./empty-snapshot.html" %}
 {% else %}
   {% if not iframe_mode %}
     <div class="card">
diff --git a/swh/web/templates/includes/directory-display.html b/swh/web/browse/templates/includes/directory-display.html
rename from swh/web/templates/includes/directory-display.html
rename to swh/web/browse/templates/includes/directory-display.html
--- a/swh/web/templates/includes/directory-display.html
+++ b/swh/web/browse/templates/includes/directory-display.html
@@ -1,16 +1,16 @@
 {% comment %}
-Copyright (C) 2017-2021  The Software Heritage developers
+Copyright (C) 2017-2022  The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
 {% endcomment %}
 
 {% if not iframe_mode %}
-  {% include "includes/revision-info.html" %}
+  {% include "./revision-info.html" %}
 {% endif %}
 
 {% if snapshot_context and snapshot_context.is_empty %}
-  {% include "includes/empty-snapshot.html" %}
+  {% include "./empty-snapshot.html" %}
 {% elif dirs|length > 0 or files|length > 0 %}
   <div class="table-responsive">
     <table class="table swh-table swh-directory-table">
diff --git a/swh/web/templates/includes/empty-snapshot.html b/swh/web/browse/templates/includes/empty-snapshot.html
rename from swh/web/templates/includes/empty-snapshot.html
rename to swh/web/browse/templates/includes/empty-snapshot.html
diff --git a/swh/web/templates/includes/origin-search-form.html b/swh/web/browse/templates/includes/origin-search-form.html
rename from swh/web/templates/includes/origin-search-form.html
rename to swh/web/browse/templates/includes/origin-search-form.html
diff --git a/swh/web/templates/includes/readme-display.html b/swh/web/browse/templates/includes/readme-display.html
rename from swh/web/templates/includes/readme-display.html
rename to swh/web/browse/templates/includes/readme-display.html
diff --git a/swh/web/templates/includes/revision-info.html b/swh/web/browse/templates/includes/revision-info.html
rename from swh/web/templates/includes/revision-info.html
rename to swh/web/browse/templates/includes/revision-info.html
diff --git a/swh/web/templates/includes/show-metadata.html b/swh/web/browse/templates/includes/show-metadata.html
rename from swh/web/templates/includes/show-metadata.html
rename to swh/web/browse/templates/includes/show-metadata.html
diff --git a/swh/web/templates/includes/show-swhids.html b/swh/web/browse/templates/includes/show-swhids.html
rename from swh/web/templates/includes/show-swhids.html
rename to swh/web/browse/templates/includes/show-swhids.html
diff --git a/swh/web/templates/includes/snapshot-context.html b/swh/web/browse/templates/includes/snapshot-context.html
rename from swh/web/templates/includes/snapshot-context.html
rename to swh/web/browse/templates/includes/snapshot-context.html
diff --git a/swh/web/templates/includes/take-new-snapshot.html b/swh/web/browse/templates/includes/take-new-snapshot.html
rename from swh/web/templates/includes/take-new-snapshot.html
rename to swh/web/browse/templates/includes/take-new-snapshot.html
diff --git a/swh/web/templates/includes/top-navigation.html b/swh/web/browse/templates/includes/top-navigation.html
rename from swh/web/templates/includes/top-navigation.html
rename to swh/web/browse/templates/includes/top-navigation.html
--- a/swh/web/templates/includes/top-navigation.html
+++ b/swh/web/browse/templates/includes/top-navigation.html
@@ -1,5 +1,5 @@
 {% comment %}
-Copyright (C) 2017-2020  The Software Heritage developers
+Copyright (C) 2017-2022  The Software Heritage developers
 See the AUTHORS file at the top-level directory of this distribution
 License: GNU Affero General Public License version 3, or any later version
 See top-level LICENSE file for more information
@@ -104,7 +104,7 @@
   {% endif %}
 
   <div id="swh-breadcrumbs-container" class="flex-grow-1">
-    {% include "includes/breadcrumbs.html" %}
+    {% include "./breadcrumbs.html" %}
   </div>
 
   <div class="btn-group swh-actions-dropdown ml-auto">
@@ -126,17 +126,17 @@
     {% endif %}
     {% if show_actions %}
       {% if not snapshot_context or not snapshot_context.is_empty %}
-        {% include "includes/vault-create-tasks.html" %}
+        {% include "./vault-create-tasks.html" %}
       {% endif %}
       {% if "swh.web.save_code_now" in SWH_DJANGO_APPS %}
-        {% include "includes/take-new-snapshot.html" %}
+        {% include "./take-new-snapshot.html" %}
       {% endif %}
-      {% include "includes/show-metadata.html" %}
+      {% include "./show-metadata.html" %}
     {% endif %}
   </div>
 </div>
 
-{% include "includes/show-swhids.html" %}
+{% include "./show-swhids.html" %}
 
 <script>
   var snapshotContext = false;
diff --git a/swh/web/templates/includes/vault-common.html b/swh/web/browse/templates/includes/vault-common.html
rename from swh/web/templates/includes/vault-common.html
rename to swh/web/browse/templates/includes/vault-common.html
diff --git a/swh/web/templates/includes/vault-create-tasks.html b/swh/web/browse/templates/includes/vault-create-tasks.html
rename from swh/web/templates/includes/vault-create-tasks.html
rename to swh/web/browse/templates/includes/vault-create-tasks.html
--- a/swh/web/templates/includes/vault-create-tasks.html
+++ b/swh/web/browse/templates/includes/vault-create-tasks.html
@@ -172,6 +172,6 @@
     </div>
   </div>
 
-  {% include "includes/vault-common.html" %}
+  {% include "./vault-common.html" %}
 
 {% endif %}
diff --git a/swh/web/browse/urls.py b/swh/web/browse/urls.py
--- a/swh/web/browse/urls.py
+++ b/swh/web/browse/urls.py
@@ -20,14 +20,14 @@
 
 def _browse_help_view(request: HttpRequest) -> HttpResponse:
     return render(
-        request, "browse/help.html", {"heading": "How to browse the archive ?"}
+        request, "browse-help.html", {"heading": "How to browse the archive ?"}
     )
 
 
 def _browse_search_view(request: HttpRequest) -> HttpResponse:
     return render(
         request,
-        "browse/search.html",
+        "browse-search.html",
         {
             "heading": "Search software origins to browse",
             "visit_types": origin_visit_types(),
@@ -38,7 +38,7 @@
 def _browse_vault_view(request: HttpRequest) -> HttpResponse:
     return render(
         request,
-        "browse/vault-ui.html",
+        "browse-vault-ui.html",
         {"heading": "Download archive content from the Vault"},
     )
 
diff --git a/swh/web/browse/views/content.py b/swh/web/browse/views/content.py
--- a/swh/web/browse/views/content.py
+++ b/swh/web/browse/views/content.py
@@ -435,7 +435,7 @@
 
     return render(
         request,
-        "browse/content.html",
+        "browse-content.html",
         {
             "heading": heading,
             "swh_object_id": swhids_info[0]["swhid"] if swhids_info else "",
diff --git a/swh/web/browse/views/directory.py b/swh/web/browse/views/directory.py
--- a/swh/web/browse/views/directory.py
+++ b/swh/web/browse/views/directory.py
@@ -219,7 +219,7 @@
 
     return render(
         request,
-        "browse/directory.html",
+        "browse-directory.html",
         {
             "heading": heading,
             "swh_object_id": swhids_info[0]["swhid"],
diff --git a/swh/web/browse/views/origin.py b/swh/web/browse/views/origin.py
--- a/swh/web/browse/views/origin.py
+++ b/swh/web/browse/views/origin.py
@@ -270,7 +270,7 @@
 
     return render(
         request,
-        "browse/origin-visits.html",
+        "browse-origin-visits.html",
         {
             "heading": heading,
             "swh_object_name": "Visits",
diff --git a/swh/web/browse/views/release.py b/swh/web/browse/views/release.py
--- a/swh/web/browse/views/release.py
+++ b/swh/web/browse/views/release.py
@@ -229,7 +229,7 @@
 
     return render(
         request,
-        "browse/release.html",
+        "browse-release.html",
         {
             "heading": heading,
             "swh_object_id": swhids_info[0]["swhid"],
diff --git a/swh/web/browse/views/revision.py b/swh/web/browse/views/revision.py
--- a/swh/web/browse/views/revision.py
+++ b/swh/web/browse/views/revision.py
@@ -282,7 +282,7 @@
 
     return render(
         request,
-        "browse/revision-log.html",
+        "browse-revision-log.html",
         {
             "heading": "Revision history",
             "swh_object_id": swh_rev_id,
@@ -564,7 +564,7 @@
 
     return render(
         request,
-        "browse/revision.html",
+        "browse-revision.html",
         {
             "heading": heading,
             "swh_object_id": swhids_info[0]["swhid"],
diff --git a/swh/web/templates/browse/layout.html b/swh/web/templates/browse/layout.html
deleted file mode 100644
--- a/swh/web/templates/browse/layout.html
+++ /dev/null
@@ -1,23 +0,0 @@
-{% extends "layout.html" %}
-
-{% comment %}
-Copyright (C) 2017-2019  The Software Heritage developers
-See the AUTHORS file at the top-level directory of this distribution
-License: GNU Affero General Public License version 3, or any later version
-See top-level LICENSE file for more information
-{% endcomment %}
-
-{% load swh_templatetags %}
-{% load render_bundle from webpack_loader %}
-
-{% block title %}{{ heading }} &ndash; Software Heritage archive {% endblock %}
-
-{% block header %}
-{% render_bundle 'browse' %}
-{% render_bundle 'vault' %}
-{% render_bundle 'save' %}
-{% endblock %}
-
-{% block content %}
-{% block browse-content %}{% endblock %}
-{% endblock %}
diff --git a/swh/web/tests/browse/views/test_content.py b/swh/web/tests/browse/views/test_content.py
--- a/swh/web/tests/browse/views/test_content.py
+++ b/swh/web/tests/browse/views/test_content.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2021  The Software Heritage developers
+# Copyright (C) 2017-2022  The Software Heritage developers
 # See the AUTHORS file at the top-level directory of this distribution
 # License: GNU Affero General Public License version 3, or any later version
 # See top-level LICENSE file for more information
@@ -47,7 +47,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     content_display = _process_content_for_display(archive_data, content_text)
@@ -79,7 +79,7 @@
         )
 
         resp = check_html_get_response(
-            client, url, status_code=200, template_used="browse/content.html"
+            client, url, status_code=200, template_used="browse-content.html"
         )
 
         content_display = _process_content_for_display(archive_data, content)
@@ -105,7 +105,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     content_display = _process_content_for_display(archive_data, content_text_non_utf8)
@@ -126,7 +126,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     content_display = _process_content_for_display(archive_data, content_image_type)
@@ -145,7 +145,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     mimetype = content_unsupported_image_type_rendering["mimetype"]
@@ -169,7 +169,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     assert_contains(resp, '<nav class="bread-crumbs')
@@ -234,7 +234,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     assert_not_contains(resp, '<nav class="bread-crumbs')
@@ -343,7 +343,7 @@
 
     url = reverse("browse-content", url_args={"query_string": unknown_content["sha1"]})
     check_html_get_response(
-        client, url, status_code=404, template_used="browse/content.html"
+        client, url, status_code=404, template_used="browse-content.html"
     )
 
 
@@ -360,7 +360,7 @@
     url = reverse("browse-content", url_args={"query_string": content["sha1"]})
 
     check_html_get_response(
-        client, url, status_code=404, template_used="browse/content.html"
+        client, url, status_code=404, template_used="browse-content.html"
     )
 
 
@@ -397,7 +397,7 @@
     url_raw = reverse("browse-content-raw", url_args={"query_string": content_sha1})
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     assert_contains(resp, "Content is too large to be displayed")
@@ -426,7 +426,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     content_display = _process_content_for_display(
@@ -465,7 +465,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     _check_origin_snapshot_related_html(
@@ -545,7 +545,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     _check_origin_snapshot_related_html(
@@ -940,7 +940,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     assert type(content["data"]) == str
@@ -1031,7 +1031,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/content.html"
+        client, url, status_code=200, template_used="browse-content.html"
     )
 
     snapshot = archive_data.snapshot_get(origin_visit["snapshot"])
@@ -1111,5 +1111,5 @@
     )
 
     check_html_get_response(
-        client, browse_url, status_code=200, template_used="browse/content.html"
+        client, browse_url, status_code=200, template_used="browse-content.html"
     )
diff --git a/swh/web/tests/browse/views/test_directory.py b/swh/web/tests/browse/views/test_directory.py
--- a/swh/web/tests/browse/views/test_directory.py
+++ b/swh/web/tests/browse/views/test_directory.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2021  The Software Heritage developers
+# Copyright (C) 2017-2022  The Software Heritage developers
 # See the AUTHORS file at the top-level directory of this distribution
 # License: GNU Affero General Public License version 3, or any later version
 # See top-level LICENSE file for more information
@@ -159,7 +159,7 @@
     )
 
     resp = check_html_get_response(
-        client, dir_url, status_code=404, template_used="browse/directory.html"
+        client, dir_url, status_code=404, template_used="browse-directory.html"
     )
     error_message = (
         f"Directory entry with path {path} from root directory {directory} not found"
@@ -188,7 +188,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
     assert_contains(resp, 'id="swhid-context-option-directory"')
 
@@ -224,7 +224,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
 
     _check_origin_snapshot_related_html(
@@ -294,7 +294,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
 
     _check_origin_snapshot_related_html(
@@ -375,7 +375,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
 
     assert_contains(resp, f"Revision: <strong>{branch_info['revision']}</strong>")
@@ -438,7 +438,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
 
     assert_contains(
@@ -561,5 +561,5 @@
     )
 
     check_html_get_response(
-        client, browse_url, status_code=200, template_used="browse/directory.html"
+        client, browse_url, status_code=200, template_used="browse-directory.html"
     )
diff --git a/swh/web/tests/browse/views/test_identifiers.py b/swh/web/tests/browse/views/test_identifiers.py
--- a/swh/web/tests/browse/views/test_identifiers.py
+++ b/swh/web/tests/browse/views/test_identifiers.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2021  The Software Heritage developers
+# Copyright (C) 2018-2022  The Software Heritage developers
 # See the AUTHORS file at the top-level directory of this distribution
 # License: GNU Affero General Public License version 3, or any later version
 # See top-level LICENSE file for more information
@@ -183,7 +183,7 @@
 
     resp = check_html_get_response(client, url, status_code=302)
     resp = check_html_get_response(
-        client, resp["location"], status_code=200, template_used="browse/content.html"
+        client, resp["location"], status_code=200, template_used="browse-content.html"
     )
 
     swhid = gen_swhid(
@@ -203,7 +203,7 @@
 
     resp = check_html_get_response(client, url, status_code=302)
     resp = check_html_get_response(
-        client, resp["location"], status_code=200, template_used="browse/content.html"
+        client, resp["location"], status_code=200, template_used="browse-content.html"
     )
 
     assert_contains(resp, swhid)
diff --git a/swh/web/tests/browse/views/test_origin.py b/swh/web/tests/browse/views/test_origin.py
--- a/swh/web/tests/browse/views/test_origin.py
+++ b/swh/web/tests/browse/views/test_origin.py
@@ -35,7 +35,7 @@
     url = reverse("browse-origin-visits", query_params={"origin_url": origin_url})
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/origin-visits.html"
+        client, url, status_code=200, template_used="browse-origin-visits.html"
     )
 
     visits = archive_data.origin_visit_get(origin_url)
@@ -385,7 +385,7 @@
     )
 
     check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
 
 
@@ -486,7 +486,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=404, template_used="browse/directory.html"
+        client, url, status_code=404, template_used="browse-directory.html"
     )
     assert re.search("Directory.*not found", resp.content.decode("utf-8"))
 
@@ -532,7 +532,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used=f"browse/{object_type}.html"
+        client, url, status_code=200, template_used=f"browse-{object_type}.html"
     )
     assert re.search("snapshot.*is empty", resp.content.decode("utf-8"))
 
@@ -561,7 +561,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
     resp_content = resp.content.decode("utf-8")
     assert re.search("snapshot.*is empty", resp_content)
@@ -605,7 +605,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
     resp_content = resp.content.decode("utf-8")
     assert re.search("snapshot.*is empty", resp_content)
@@ -626,7 +626,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
     assert_contains(resp, release_data["name"])
     assert_contains(resp, release["target"])
@@ -706,7 +706,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
     assert_contains(
         resp, f"Revision {unknown_revision } could not be found in the archive."
@@ -848,7 +848,7 @@
     url = reverse("browse-origin-directory", query_params=query_params)
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
     assert_contains(resp, '<td class="swh-directory">', count=len(dirs))
     assert_contains(resp, '<td class="swh-content">', count=len(files))
@@ -975,7 +975,7 @@
     client.logout()
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
     # None of the above should be present for logged-out users
     for snippet in extrinsic_metadata_snippets:
@@ -984,7 +984,7 @@
     client.force_login(staff_user)
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
 
     # But they should for staff users
@@ -1018,5 +1018,5 @@
         query_params={"origin_url": origin_url, "branch": pr_branch},
     )
     check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
diff --git a/swh/web/tests/browse/views/test_release.py b/swh/web/tests/browse/views/test_release.py
--- a/swh/web/tests/browse/views/test_release.py
+++ b/swh/web/tests/browse/views/test_release.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2021  The Software Heritage developers
+# Copyright (C) 2018-2022  The Software Heritage developers
 # See the AUTHORS file at the top-level directory of this distribution
 # License: GNU Affero General Public License version 3, or any later version
 # See top-level LICENSE file for more information
@@ -90,7 +90,7 @@
     message_lines = message.split("\n")
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/release.html"
+        client, url, status_code=200, template_used="browse-release.html"
     )
     assert_contains(resp, author_name)
     assert_contains(resp, format_utc_iso_date(release_date))
diff --git a/swh/web/tests/browse/views/test_revision.py b/swh/web/tests/browse/views/test_revision.py
--- a/swh/web/tests/browse/views/test_revision.py
+++ b/swh/web/tests/browse/views/test_revision.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2021  The Software Heritage developers
+# Copyright (C) 2017-2022  The Software Heritage developers
 # See the AUTHORS file at the top-level directory of this distribution
 # License: GNU Affero General Public License version 3, or any later version
 # See top-level LICENSE file for more information
@@ -72,7 +72,7 @@
         nb_log_entries = len(revision_log_sorted)
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/revision-log.html"
+        client, url, status_code=200, template_used="browse-revision-log.html"
     )
     assert_contains(resp, '<tr class="swh-revision-log-entry', count=nb_log_entries)
     assert_contains(resp, '<a class="page-link">Newer</a>')
@@ -96,7 +96,7 @@
         return
 
     resp = check_html_get_response(
-        client, next_page_url, status_code=200, template_used="browse/revision-log.html"
+        client, next_page_url, status_code=200, template_used="browse-revision-log.html"
     )
 
     prev_page_url = reverse(
@@ -130,7 +130,7 @@
         return
 
     resp = check_html_get_response(
-        client, next_page_url, status_code=200, template_used="browse/revision-log.html"
+        client, next_page_url, status_code=200, template_used="browse-revision-log.html"
     )
 
     prev_page_url = reverse(
@@ -233,7 +233,7 @@
         history_url = reverse("browse-revision-log", url_args={"sha1_git": revision})
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/revision.html"
+        client, url, status_code=200, template_used="browse-revision.html"
     )
     assert_contains(resp, author_name)
     assert_contains(resp, committer_name)
@@ -310,7 +310,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=404, template_used="browse/revision.html"
+        client, url, status_code=404, template_used="browse-revision.html"
     )
 
     directory = archive_data.revision_get(revision)["directory"]
@@ -340,7 +340,7 @@
     url = reverse("browse-revision", url_args={"sha1_git": hash_to_hex(revision.id)})
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/revision.html"
+        client, url, status_code=200, template_used="browse-revision.html"
     )
     assert_contains(resp, "swh-metadata-popover")
     assert_contains(resp, escape(json.dumps(metadata, indent=4)))
diff --git a/swh/web/tests/browse/views/test_snapshot.py b/swh/web/tests/browse/views/test_snapshot.py
--- a/swh/web/tests/browse/views/test_snapshot.py
+++ b/swh/web/tests/browse/views/test_snapshot.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021 The Software Heritage developers
+# Copyright (C) 2022 The Software Heritage developers
 # See the AUTHORS file at the top-level directory of this distribution
 # License: GNU Affero General Public License version 3, or any later version
 # See top-level LICENSE file for more information
@@ -49,7 +49,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used=f"browse/{template_used}"
+        client, url, status_code=200, template_used=f"browse-{template_used}"
     )
     assert_contains(resp, f"swh:1:snp:{snapshot}")
 
@@ -147,7 +147,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/branches.html"
+        client, url, status_code=200, template_used="browse-branches.html"
     )
 
     origin_branches = origin_snapshot[0]
@@ -252,7 +252,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/branches.html"
+        client, url, status_code=200, template_used="browse-branches.html"
     )
     assert_contains(resp, '<ul class="pagination')
 
@@ -264,7 +264,7 @@
     # check no pull request branches are displayed in the Branches / Releases dropdown
     url = reverse("browse-origin-directory", query_params={"origin_url": origin_url})
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/directory.html"
+        client, url, status_code=200, template_used="browse-directory.html"
     )
     assert_not_contains(resp, "refs/pull/")
 
@@ -276,7 +276,7 @@
         query_params={"origin_url": origin_url},
     )
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/branches.html"
+        client, url, status_code=200, template_used="browse-branches.html"
     )
     assert_not_contains(resp, "refs/pull/")
 
@@ -306,7 +306,7 @@
     )
 
     resp = check_html_get_response(
-        client, url, status_code=200, template_used="browse/releases.html"
+        client, url, status_code=200, template_used="browse-releases.html"
     )
 
     origin_releases = origin_snapshot[1]
@@ -395,7 +395,7 @@
     )
 
     resp = check_html_get_response(
-        client, snp_url, status_code=200, template_used="browse/directory.html"
+        client, snp_url, status_code=200, template_used="browse-directory.html"
     )
     assert_not_contains(resp, log_url)
 
@@ -443,6 +443,6 @@
     )
 
     resp = check_html_get_response(
-        client, snp_url, status_code=200, template_used="browse/directory.html"
+        client, snp_url, status_code=200, template_used="browse-directory.html"
     )
     assert_contains(resp, log_url)