1
我正在使用Yesod构建一个简单的应用程序,并且我很难引入外部文件。这里是我的代码:hamletFile,luciusFile,julius文件变量不在范围内
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
import Yesod
data GomokuServer = GomokuServer
mkYesod "GomokuServer" [parseRoutes|
/HomeR GET
|]
instance Yesod GomokuServer
getHomeR :: Handler Html
getHomeR = defaultLayout $ do
$(hamletFile "./src/templates/home.hamlet")
$(luciusFile "./src/templates/home.lucius")
main :: IO()
main = warp 3000 GomokuServer
它的伟大工程,当我用quasiquotes,或者如果我whamletFile
取代hamletFile
,但否则将无法编译,因为它无法找到hamletFile
或luciusFile
。我使用的是Yesod版本1.4,我认为这些方法是通过核心Yesod包导入的。他们不是?
我可以使用'whamletFile'导入外部'.lucius'文件吗?我只是觉得它只能使用'.hamlet'文件。我最终使用Text.Hamlet导入。 –
你不能使用'whamletFile'来导入lucius文件,但是你可以使用'widgetFile'函数来导入所有3个hamlet,lucius和cassius文件。 – Ben
但'widgetFile'不包含在核心yesod库中,对吧?我必须将yesod-scaffold添加到我的依赖列表中,这似乎是一种矫枉过正,考虑到这是我将使用的唯一功能。 –