Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Melayan Fail HTML Tersuai sebagai Laluan Root FastAPI?

Bagaimana untuk Melayan Fail HTML Tersuai sebagai Laluan Root FastAPI?

Barbara Streisand
Barbara Streisandasal
2024-11-12 01:49:01679semak imbas

How to Serve a Custom HTML File as the FastAPI Root Path?

Menyajikan Fail HTML Tersuai sebagai Laluan Root FastAPI

Anda menyasarkan untuk memaparkan fail HTML tersuai, seperti custom.html, sebagai laluan akar apl FastAPI anda. Walau bagaimanapun, persediaan semasa anda membawa kepada index.html lalai dikembalikan.

Punca Index.html Return

Seperti yang diterangkan dalam dokumentasi Starlette pada StaticFiles:

html - Run in HTML mode. Automatically loads index.html for directories if such file exists.

Penyelesaian

Untuk menyelesaikan isu ini, anda mempunyai dua pilihan:

1. Lekapkan StaticFiles ke Laluan Berbeza:

Lekapkan instance StaticFiles anda ke laluan unik, seperti /static. Ini memastikan bahawa mana-mana laluan bermula dengan /static dikendalikan oleh aplikasi StaticFiles.

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

2. Tentukan StaticFiles Selepas Titik Akhir:

Jika anda masih mahu melekapkan StaticFiles ke laluan akar (/), tentukan tika StaticFiles selepas mengisytiharkan semua titik akhir API anda. Ini memastikan bahawa titik akhir mempunyai keutamaan berbanding StaticFiles.

@app.get('/')
async def index():
    return FileResponse('static/custom.html')
app.mount('/', StaticFiles(directory='static', html=True), name='static')

html=True Option

Argumen html=True membolehkan penyajian kandungan web statik dengan mudah dengan satu baris kod . Walau bagaimanapun, jika anda memerlukan fail HTML dinamik dan titik akhir API tambahan, pertimbangkan untuk menggunakan Templat dan memasang StaticFiles ke laluan lain tanpa menggunakan html=True.

Atas ialah kandungan terperinci Bagaimana untuk Melayan Fail HTML Tersuai sebagai Laluan Root FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn