def service_worker():
     return send_from_directory("static", "service.js")
 
+@app.get("/manifest.json")
+def manifest():
+    return send_from_directory("static", "manifest.json")
+
 def get_gif_data():
     # Convert all .gifs to base64 strings and embed them as dataset entries
     # in <div>s.  This is used by nav.js:customImage() - it replaces specific
 
         <title>{% block title %}{% endblock %}</title>
         <link rel="stylesheet" href="/static/styles.css?v=5"/>
         <link rel="icon" type="image/x-icon" href="/static/lsp_notes.png?v=1"/>
-        <link rel="manifest" href="/static/manifest.json?v=1"/>
+        <link rel="manifest" href="/manifest.json?v=1"/>
         <script src="/static/player.js?v=3"></script>
         <script src="/static/nav.js?v=3"></script>
         <meta name="viewport" content="width=device-width, initial-scale=1">