今天继续上一节的开发
今天咱们需要详细的开发一个图书馆站点,分为下面几个页面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
标签,咱们就差异了用户存在和不存在的状态