16 lines
591 B
Python
16 lines
591 B
Python
import posixpath
|
|
from pathlib import Path
|
|
|
|
from django.utils._os import safe_join
|
|
from django.views.static import serve as static_serve
|
|
from django.views.decorators.csrf import ensure_csrf_cookie
|
|
|
|
@ensure_csrf_cookie
|
|
def serve_frontend(request, path, document_root = None):
|
|
print(f"Serving path: {path} from {document_root}")
|
|
path = posixpath.normpath(path).lstrip("/")
|
|
fullpath = Path(safe_join(document_root, path))
|
|
if fullpath.is_file():
|
|
return static_serve(request, path, document_root)
|
|
else:
|
|
return static_serve(request, "index.html", document_root)
|