diff options
Diffstat (limited to 'jb/main.py')
| -rw-r--r-- | jb/main.py | 34 |
1 files changed, 32 insertions, 2 deletions
@@ -7,7 +7,7 @@ from starlette.middleware.cors import CORSMiddleware from starlette.middleware.trustedhost import TrustedHostMiddleware from jb.config import settings -from jb.settings import BASE_HTML +from jb.settings import BASE_HTML, load_manifest from jb.views.auth import auth_router from jb.views.common import common_router @@ -45,9 +45,39 @@ def return_nothing() -> dict[str, Any]: @app.get("/{full_path:path}") def serve_react_app(full_path: str): + + manifest = load_manifest() + entry = manifest["src/main.tsx"] + js_file = entry["file"] + css_file = manifest["style.css"]["file"] + + html = f"""<!doctype html> + <html lang="en-US"> + <head> + <meta charset="utf-8"> + <meta name="viewport" + content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, user-scalable=1"> + <title>James Billings loves you.</title> + <link rel="stylesheet" + href="https://cdn.jamesbillings67.com/{css_file}" + type="text/css"> + </head> + <body> + <div id="root"></div> + <script src="https://cdn.jamesbillings67.com/{js_file}"></script> + </body> + </html>""" + # This serves index.html for any unmatched route # React Router will then handle the client-side routing - return HTMLResponse(BASE_HTML) + return HTMLResponse( + html, + headers={ + "Cache-Control": "no-cache, no-store, must-revalidate", + "Pragma": "no-cache", + "Expires": "0", + }, + ) def schedule_tasks(): |
