Como servir um arquivo HTML específico no caminho raiz FastAPI ao usar StaticFiles
Ao usar FastAPI junto com StaticFiles para servir arquivos estáticos, você pode encontrar cenários em que você deseja carregar um arquivo HTML diferente (por exemplo, custom.html) no caminho raiz em vez do index.html padrão. Isso pode ser alcançado entendendo certos aspectos do roteamento do FastAPI e da funcionalidade StaticFiles. um diretório especificado. Quando html=True é definido, ele procura automaticamente por arquivos index.html nos diretórios e os exibe adequadamente.
Ordem de montagem
A ordem de montagem de StaticFiles e definição de seus endpoints desempenha um papel crucial. Se StaticFiles for montado no caminho raiz (ou seja, /) e definido antes de qualquer endpoint, ele terá precedência e tratará todas as solicitações, mesmo se endpoints personalizados forem definidos posteriormente.
Personalizando o caminho raiz
Para servir um arquivo HTML específico no caminho raiz, você precisa seguir estas etapas:
Montar StaticFiles em um caminho separado (por exemplo, /static) :
app.mount('/static', StaticFiles(directory='static'))
Crie um endpoint personalizado que retorne o arquivo HTML desejado:
app.mount('/static', StaticFiles(directory='static'))
@app.get('/') async def index(): return FileResponse('custom.html')Considerações adicionais
Entenda que se StaticFiles manipular uma solicitação e não encontrar um arquivo com o caminho solicitado, ele irá retornar uma resposta 404 Not Found.
O uso de modelos em vez de FileResponse fornece mais flexibilidade para atualizar arquivos HTML dinamicamente.Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3