Saltar al contenido

Archivos Estáticos

Puedes servir archivos estáticos automáticamente desde un directorio usando StaticFiles.

Consejo

Si necesitas alojar un frontend, usa app.frontend() en su lugar, lee sobre ello en Frontend.

app.frontend() usa StaticFiles por debajo, con varias ventajas adicionales para frontends, como manejar el enrutamiento del lado del cliente.

Usar StaticFiles

  • Importa StaticFiles.
  • "Monta" una instancia de StaticFiles() en una ruta específica.
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

app = FastAPI()

app.mount("/static", StaticFiles(directory="static"), name="static")

Detalles Técnicos

También podrías usar from starlette.staticfiles import StaticFiles.

FastAPI proporciona el mismo starlette.staticfiles como fastapi.staticfiles solo como una conveniencia para ti, el desarrollador. Pero en realidad viene directamente de Starlette.

Qué es "Montar"

"Montar" significa añadir una aplicación "independiente" completa en un path específico, que luego se encarga de manejar todos los sub-paths.

Esto es diferente de usar un APIRouter ya que una aplicación montada es completamente independiente. El OpenAPI y los docs de tu aplicación principal no incluirán nada de la aplicación montada, etc.

Puedes leer más sobre esto en la Guía de Usuario Avanzada.

Detalles

El primer "/static" se refiere al sub-path en el que esta "sub-aplicación" será "montada". Entonces, cualquier path que comience con "/static" será manejado por ella.

El directory="static" se refiere al nombre del directorio que contiene tus archivos estáticos.

El name="static" le da un nombre que puede ser usado internamente por FastAPI.

Todos estos parámetros pueden ser diferentes de "static", ajústalos a las necesidades y detalles específicos de tu propia aplicación.

Más información

Para más detalles y opciones revisa la documentación de Starlette sobre Archivos Estáticos.