относительные пути URL при обслуживании файлов stati c с FastAPI / Starlette - PullRequest
0 голосов
/ 18 января 2020

У меня есть простое приложение FastAPI, которое обслуживает файл test.html в app/main.py примерно так:

@app.get('/')
def index():
  return FileResponse('static/test.html')

Структура каталогов выглядит так:

app/main.py
app/static/test.html

Могу ли я изменить это, чтобы он работал с измененной структурой каталогов, где app/ и static/ являются братьями и сестрами?

Я пытался return FileResponse('../static/test.html'), но это не сработало до сих пор; В результате возникает ошибка «RuntimeError: Файл по пути ../static/test.html не существует».

1 Ответ

0 голосов
/ 20 января 2020

Если ваш каталог 'stati c' находится в том же каталоге, что и ваш main.py
Попробуйте:

return FileResponse('./static/test.txt')

Похоже, что вы искали в папке выше.

вы могли бы os.path получить родительский каталог

import os 
parent_dir_path = os.path.dirname(os.path.realpath(__file__))

@app.get('/')
def index():
  return FileResponse(parent_dir_path + '/static/test.html')
...