Атрибут html класса StaticFiles
Атрибут html применяется к экземпляру класса StaticFiles
и включает режим отдачи HTML-файлов.
По умолчанию этот режим выключен, и запрос к корню
статической директории возвращает ошибку 404.
Если установить html=True, то при обращении к директории
FastAPI будет искать файл index.html и отдавать его.
Атрибут не является параметром метода или функции -
это именованный аргумент конструктора класса StaticFiles.
Его значение по умолчанию - False.
Синтаксис
StaticFiles(directory, html=True)
Пример
Давайте подключим статическую директорию 'static'
с включённым режимом HTML и положим туда файл 'index.html':
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount('/static', StaticFiles(directory='static', html=True), name='static')
Файл 'static/index.html':
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Главная</title>
</head>
<body>
<h1>hello</h1>
</body>
</html>
Теперь при обращении к адресу '/static/'
сервер вернёт содержимое файла 'index.html':
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Главная</title>
</head>
<body>
<h1>hello</h1>
</body>
</html>
Пример
Давайте сравним поведение с выключенным и включённым атрибутом html.
Сначала создадим приложение без этого атрибута:
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount('/static', StaticFiles(directory='static'), name='static')
При запросе к адресу '/static/' сервер вернёт ошибку 404,
даже если файл 'index.html' существует.
Теперь включим атрибут html:
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount('/static', StaticFiles(directory='static', html=True), name='static')
При запросе к адресу '/static/' сервер вернёт содержимое
файла 'index.html'. При этом прямые запросы к другим файлам,
например '/static/style.css', работают как обычно.
Смотрите также
-
класс
StaticFiles,
который отдаёт статические файлы из директории -
атрибут
directory,
который задаёт путь к статической директории -
атрибут
packages,
который позволяет отдавать файлы из Python-пакетов -
атрибут
check_dir,
который проверяет существование директории при старте