Click to start the redirect chain!
|]
getLink1R, getLink2R, getLink3R :: Handler ()
getLink1R = redirect Link2R -- /link2
getLink2R = redirect (Link3R, [("foo", "bar")]) -- /link3?foo=bar
getLink3R = redirect $ Link4R :#: ("baz" :: Text) -- /link4#baz
getLink4R :: Handler Html
getLink4R = defaultLayout
[whamlet|
You made it!
|]
main :: IO ()
main = warp 3000 App
```
当然,在Hamlet模板中,这通常不是必需的,因为您可以直接在URL之后包含哈希,例如:
```Haskell
Link to hash
```
## 结语
路由和调度可以说是Yesod的核心:从这里我们定义了类型安全的URL,并且我们的大部分代码都是在Handler monad中编写的。本章介绍了Yesod的一些最重要和最重要的概念,因此正确消化它非常重要。
本章还暗示了一些我们将在稍后介绍的更复杂的Yesod主题。但是到这里你应该能够用你所学到的知识编写一些非常复杂的Web应用程序。