Performance: Serving static files
This affects how quickly static assets like images, CSS, and JavaScript load, impacting page load speed and user experience.
Jump into concepts and practice - no test required
from fastapi import FastAPI from fastapi.staticfiles import StaticFiles app = FastAPI() app.mount('/static', StaticFiles(directory='static'), name='static')
from fastapi import FastAPI from fastapi.responses import Response app = FastAPI() @app.get('/static/{file_path:path}') async def serve_static(file_path: str): with open(f'static/{file_path}', 'rb') as f: return Response(content=f.read(), media_type='application/octet-stream')
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Manual file read per request | N/A | N/A | Delays asset load causing slower paint | [X] Bad |
| FastAPI StaticFiles mount | N/A | N/A | Assets load faster, enabling quicker paint | [OK] Good |
StaticFiles in a FastAPI application?StaticFiles is used to serve static content like images, CSS, and JavaScript files in FastAPI.app.mount(path, StaticFiles(directory=folder), name=alias).from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount('/files', StaticFiles(directory='myfiles'), name='files')
What URL path should you visit in a browser to access a file named image.png inside the myfiles folder?from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount('/static', StaticFiles('static'), name='static')directory parameter.app.mount(path, StaticFiles(directory=folder), name=alias) for each static folder.