浏览代码

#714 serve static files individually

Falko Schindler 2 年之前
父节点
当前提交
c61d8feea0
共有 1 个文件被更改,包括 10 次插入7 次删除
  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: