-
First Check
Commit to Help
Example Codefrom fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount("/static", StaticFiles(directory="/var"), name="test")
app.url_path_for("test")
>>> starlette.routing.NoMatchFound: No route exists for name "test" and params "".DescriptionFastAPI.url_path_for() should return "/static" but starlette.routing.NoMatchFound error instead Operating SystemLinux Operating System DetailsNot relevant FastAPI Version0.115.12 Pydantic VersionNot relevant Python Version3.12.10 Additional ContextNo response |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
|
Hello @skewty, from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount("/static", StaticFiles(directory="/var"), name="test")
app.url_path_for("test", path="") # proably you have to trail the last backslashConsider this as a little work around, since seems that StaticFiles is not totally supported from |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for that workaround. Unfortunately it works in the overly simple test case, but isn't going to work for me (and I am guessing most others) as I have many routers. See the updated example below. from fastapi import FastAPI, APIRouter
from fastapi.staticfiles import StaticFiles
router = APIRouter(prefix="/router")
router.mount("/router/static", StaticFiles(directory="/var"), name="router_test")
app = FastAPI()
app.mount("/static", StaticFiles(directory="/var"), name="test")
app.include_router(router)
print(router.url_path_for("router_test", path="")) # gives "/router/static/"
print(app.url_path_for("router_test", path="")) # raises: starlette.routing.NoMatchFoundMy issue is the calling code has no idea which router holds the named route. My code couples a function I took a quick look at Am I out of luck now? Can this be filed as a bug as |
Beta Was this translation helpful? Give feedback.
Hello @skewty,
for your specific case, simply specify an empty path parameter should solve your issue.
Consider this as a little work around, since seems that StaticFiles is not totally supported from
url_path_for.