FastAPI как отдать spa с реакт роутером?

Все так то работает, роуты связаны, все хостится, но есть проблема

Когда я хочу выйти куда то за пределы index.html, скажем на http://my-app/auth мне отдает {"detail":"Not Found"}

app.mount("/", StaticFiles(directory='../STATIC-CONTAINER'))

# это было дописано после того, как я убедился!, что StaticFiles не помогают
@app.get("/{full_path:path}")
def handle_index(full_path: str) -> HTMLResponse:
  with open('../STATIC-CONTAINER/index.html', 'r') as index:
    return HTMLResponse(index)

что я не так делаю, информации в интернете я не нашел


Ответы (1 шт):

Автор решения: Yellow Dollar

Если вам нужно, чтобы все страницы, которые попадают в обработку 404 редиректились, например на главную страницу, вам нужно кастомизировать ответа сервера на статус код 404. Об этом можно больше почитать в документации, но вот вам краткий код обработки:

    @app.exception_handler(404)
    async def not_found_handler(request: Request, exc):
        return JSONResponse(
            status_code=404,
            content={"message": "Details not found"},
        )
→ Ссылка