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:
GET /products/bikes/trail-one
│
▼
the URL manager: what does this URL address?
│
├── a page ──────────────────────► rendered; a page nothing renders falls through
├── a stored file ───────────────► sent, with range requests and caching
├── a page or file the visitor ──► a login redirect, or 403 once signed in
│ may not read
└── nothing ─────────────────────► the request goes on: other routes, MapFallback, or a 404Part IV covers how a page is rendered, and Stored files how a file is sent.
With the article from chapter 6:
GET /hello-world Views/Shared/Article.cshtml, with the article as its model
GET /assets/{token}/photo.jpg the photo
GET /no-such-page MapFallback, or a 404Content is read as the visitor: anonymous, or the signed-in user (chapter 2).
An unpublished page is answered as if it did not exist. For a page or file the visitor may not
read, an anonymous visitor is sent to the login page and a signed-in one gets 403. With
LoginRedirect off, or on a site without sign-in, it is answered as if it did not exist.