所以,我正在將我的專案從 node.js 換成 python FastAPI(為了方便起見,我對 python 更加認可)。一切都在節點上運行良好,但這里說我的靜態檔案不存在,所以這里是基本代碼:
from fastapi import FastAPI, Request, WebSocket
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
app = FastAPI()
app.mount("/static", StaticFiles(directory="../static"), name="static")
templates = Jinja2Templates(directory='../templates')
@app.get('/')
async def index_loader(request: Request):
return templates.TemplateResponse('index.html', {"request": request})
和一個專案結構

檔案顯然在它們應該在的位置,但是當我連接到網站時,uvicorn 會引發錯誤:
←[32mINFO←[0m: connection closed
←[32mINFO←[0m: 127.0.0.1:54295 - "←[1mGET /img/separator.png HTTP/1.1←[0m" ←[31m404 Not Found←[0m
←[32mINFO←[0m: 127.0.0.1:54296 - "←[1mGET /css/rajdhani.css HTTP/1.1←[0m" ←[31m404 Not Found←[0m
←[32mINFO←[0m: 127.0.0.1:54295 - "←[1mGET /js/pixi.min.js HTTP/1.1←[0m" ←[31m404 Not Found←[0m
←[32mINFO←[0m: 127.0.0.1:54296 - "←[1mGET /js/ease.js HTTP/1.1←[0m" ←[31m404 Not Found←[0m
←[32mINFO←[0m: 127.0.0.1:54298 - "←[1mGET / HTTP/1.1←[0m" ←[32m200 OK←[0m
←[32mINFO←[0m: 127.0.0.1:54298 - "←[1mGET /img/separator.png HTTP/1.1←[0m" ←[31m404 Not Found←[0m
←[32mINFO←[0m: 127.0.0.1:54299 - "←[1mGET /css/rajdhani.css HTTP/1.1←[0m" ←[31m404 Not Found←[0m
←[32mINFO←[0m: 127.0.0.1:54298 - "←[1mGET /js/pixi.min.js HTTP/1.1←[0m" ←[31m404 Not Found←[0m
←[32mINFO←[0m: 127.0.0.1:54299 - "←[1mGET /js/ease.js HTTP/1.1←[0m" ←[31m404 Not Found←[0m
所以基本上我正在使用的一個靜態檔案都丟失了,我不知道我做錯了什么,我曾經用 FastAPI 做一些專案并且從未遇到過這樣的問題,并且在檔案中找不到關于它的訊息,所以我不知道該怎么做才能解決它。
uj5u.com熱心網友回復:
這里:
app.mount("/static", StaticFiles(directory="../static"), name="static")
您將靜態目錄安裝在/static路徑下。這意味著,如果您想訪問 html 中的靜態檔案,您需要使用static前綴,例如<img src="static/img/separator.png"/>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/405652.html
標籤:
上一篇:FlaskHTTP方法不允許訊息
下一篇:Vue沒有在組件中傳遞資料
