Browse Source

Merge pull request #720 from zauberzeug/static-files

#714 serve static files individually
Rodja Trappe 2 years ago
parent
commit
6cf53c0421
1 changed files with 10 additions and 7 deletions
  1. 10 7
      nicegui/nicegui.py

+ 10 - 7
nicegui/nicegui.py

@@ -1,6 +1,5 @@
 import asyncio
 import asyncio
 import os
 import os
-import platform
 import time
 import time
 import urllib.parse
 import urllib.parse
 from pathlib import Path
 from pathlib import Path
@@ -9,7 +8,6 @@ from typing import Dict, Optional
 from fastapi import HTTPException, Request
 from fastapi import HTTPException, Request
 from fastapi.middleware.gzip import GZipMiddleware
 from fastapi.middleware.gzip import GZipMiddleware
 from fastapi.responses import FileResponse, Response
 from fastapi.responses import FileResponse, Response
-from fastapi.staticfiles import StaticFiles
 from fastapi_socketio import SocketManager
 from fastapi_socketio import SocketManager
 
 
 from nicegui import json
 from nicegui import json
@@ -30,11 +28,6 @@ socket_manager = SocketManager(app=app, mount_location='/_nicegui_ws/', json=jso
 globals.sio = sio = app.sio
 globals.sio = sio = app.sio
 
 
 app.add_middleware(GZipMiddleware)
 app.add_middleware(GZipMiddleware)
-static_files = StaticFiles(
-    directory=Path(__file__).parent / 'static',
-    follow_symlink=platform.system().lower() != 'windows'
-)
-app.mount(f'/_nicegui/{__version__}/static', static_files, name='static')
 
 
 globals.index_client = Client(page('/'), shared=True).__enter__()
 globals.index_client = Client(page('/'), shared=True).__enter__()
 
 
@@ -44,6 +37,16 @@ def index(request: Request) -> Response:
     return globals.index_client.build_response(request)
     return globals.index_client.build_response(request)
 
 
 
 
+@app.get(f'/_nicegui/{__version__}' + '/static/{name}')
+def get_static(name: str):
+    return FileResponse(Path(__file__).parent / 'static' / name)
+
+
+@app.get(f'/_nicegui/{__version__}' + '/static/fonts/{name}')
+def get_static(name: str):
+    return FileResponse(Path(__file__).parent / 'static' / 'fonts' / name)
+
+
 @app.get(f'/_nicegui/{__version__}' + '/dependencies/{id}/{name}')
 @app.get(f'/_nicegui/{__version__}' + '/dependencies/{id}/{name}')
 def get_dependencies(id: int, name: str):
 def get_dependencies(id: int, name: str):
     if id in js_dependencies and js_dependencies[id].path.exists() and js_dependencies[id].path.name == name:
     if id in js_dependencies and js_dependencies[id].path.exists() and js_dependencies[id].path.name == name: