我尝试过:app.mount("", StaticFiles(directory="index.html", html = True), name="index.html")
以及:
templates = Jinja2Templates(directory="/")
app.mount("/", StaticFiles(directory="/"))
@app.get("/")
def serve_home(request: Request):
return templates.TemplateResponse("index.html", context= {"request": request})
在这两种情况下,我都无法使用以下方法导入静态文件:from fastapi.staticfiles import StaticFiles
似乎from fastapi import FastAPI
也无法解决,但在我尝试加载html文件之前,这并没有阻止程序工作
您只需要代码:
# main.py
import uvicorn
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
# first 'static' specify route path, second 'static' specify html files directory.
app.mount('/static', StaticFiles(directory='static',html=True))
if __name__ == '__main__':
uvicorn.run(app, host='0.0.0.0')
运行main.py
后,http://127.0.0.1:8000/static/index.html
访问
项目树为:
$ tree app
app
├── main.py
└── static
└── index.html
参考https://fastapi.tiangolo.com/tutorial/static-files/.
希望这是有用的。