"""Static file server for the Space (port 7860) with correct types for .mjs/.wasm.""" import http.server import mimetypes import os mimetypes.add_type("text/javascript", ".mjs") mimetypes.add_type("application/wasm", ".wasm") class Handler(http.server.SimpleHTTPRequestHandler): def __init__(self, *args, **kwargs): super().__init__(*args, directory=os.path.join(os.path.dirname(__file__), "site"), **kwargs) def end_headers(self): # hashed build assets can be cached for long; everything else revalidates if self.path.startswith("/assets/"): self.send_header("Cache-Control", "public, max-age=31536000, immutable") else: self.send_header("Cache-Control", "no-cache") super().end_headers() if __name__ == "__main__": http.server.ThreadingHTTPServer(("0.0.0.0", 7860), Handler).serve_forever()