按照书上第八章的内容,我们来创建一个表单。
代码无误,但是有一点,默认的库使用了Google的CDN。这在大局域网当然没法用。我们来改造一下
首先我们要搞定自己的静态资源(如果你有CDN,可以跳过这里)
1.安装yesod-static
安装过程会提示有些库找不到,可以一个个的手动安装,一定可以成功的
2.让代码识别出我们的静态文件夹
参看Haskell之Yesod开发–边踩坑边开发(2)
接下来我们修补一下静态文件
1.复制我们需要的文件到static文件夹
分别是jquery.min.js jquery-ui.css jquery-ui.min.js
当然你可以增加其他的供自己使用
2.然后修补代码
instance YesodJquery App where
--urlJqueryJs :: App -> Either (Route App) Text
urlJqueryJs _ = Right "/static/jquery.min.js"
--urlJqueryUiJs :: App -> Either (Route App) Text
urlJqueryUiJs _ = Right "/static/jquery-ui.min.js"
--urlJqueryUiCss :: App -> Either (Route App) Text
urlJqueryUiCss _ = Right "/static/jquery-ui.css"
具体解释看这里 https://github.com/yesodweb/yesod/blob/master/yesod-form/Yesod/Form/Jquery.hs
我这里偷懒了一下,没有修补googleHostedJqueryUiCss
最后 cabal run 。嗯!表单很快就显示了