The default — app.MapRelatudeCMS() is all it takes. For a request that no other route answers, it asks the URL manager once what the URL addresses, and answers by what it finds:
Which route wins — Explicit routes win. The content routes are catch-alls on {**url}, the lowest precedence, so app.MapGet("/search", …) answers /search even when a page has the address search. Static files come first when UseStaticFiles()…
Stored files — Images, video and downloads are served by the same routes as pages. Make their URLs with GetUrl:
Options — MapRelatudeCMS takes a route pattern. Combine it with a base path for the URLs, and the database answers below /site while the rest of the application keeps every other path: