今天繼續上一節的開發
今天咱們需要詳細的開發一個圖書館站點,分爲下面幾個頁面php
首先咱們簡單完畢HomeR
和LibraryR
的頁面(詳細代碼省略,你們本身完畢)。
假設要作一個站點,必要的圖片是不可或缺的。咱們想在LibraryR
中放置一個Logo圖標。所以咱們需要像一般的web開發框架那樣。在一個詳細文件夾下存放logo.jpg
,而後在頁面上引用。web
引用代碼很easymarkdown
<img src=@{StaticR logo_jpg}>
這裏需要注意的是,yesod
會將文件夾結構和.
分隔符用_
來替代
接下來在src
的同級建立一個static
文件夾,並copylogo.jpg
到當中
而後咱們在routes
結構中添加對於static
的聲明/static StaticR Static getStatic
,當中的getStatic
是說明從何處存取static文件框架
咱們需要全局聲明static
的文件夾,在全局範圍上添加$(staticFiles "static")
spa
改動App的聲明 data App = App{getStatic::Static}
code
改動App的構造方式,添加註入static
文件夾的方式xml
main = do
s@(Static settings) <- static "static"
wrap 3000 $ App s
這樣就可以讀入static
文件夾和當中的文件了圖片
首頁上的內容你們本身構造,在這裏咱們來講明一下怎樣作一個帶參數的連接。路由
咱們已經聲明瞭UserR
路由。這個路由帶有一個用戶ID開發
getHomeR :: Handler Html
getHomeR = do
...
let userid = -1 :: Integer
...
在頁面上咱們但願經過該ID的不一樣值來渲染節點
$if (userid == -1) <label> $else <a href=@{UserR userid} #userC∑lick>用戶設置
這樣經過使用$if $else
標籤,咱們就差異了用戶存在和不存在的狀態