저는 Yesod를 사용하여 간단한 응용 프로그램을 작성 중이며 외부 파일을 가져 오는 데 어려움을 겪고 있습니다. 여기 내 코드입니다 : 내가 whamletFile
로 hamletFile
를 교체 할 경우hamletFile, luciusFile, juliusFile 변수가 범위 내에 없습니다
{-# 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을 사용할 때 좋은 작품, 또는하지만 hamletFile
또는 luciusFile
을 찾을 수 없기 때문에 그렇지 않으면 컴파일되지 않습니다. 나는 Yesod 버전 1.4를 사용하고 있으며, 핵심 메소드 인 Yesod 패키지로 가져온 메소드를 생각했습니다. 그렇지 않습니까?
'whamletFile'을 사용하여 외부'.lucius' 파일을 가져올 수 있습니까? 나는'.hamlet' 파일에서만 작동한다는 인상 아래에있었습니다. Text.Hamlet을 사용하여 가져 오기를 종료했습니다. –
'whamletFile'을 사용하여 lucius 파일을 가져올 수는 없지만, 3 개의 hamlet, lucius 및 cassius 파일을 모두 가져 오는'widgetFile' 함수를 사용할 수 있습니다. – Ben
그러나'widgetFile'은 핵심 yesod 라이브러리에 포함되어 있지 않습니까? 나는 의존성 목록에 yesod-scaffold를 추가해야 할 것입니다. 과도한 것처럼 보이는 것, 그것이 제가 사용할 유일한 기능이라고 생각합니다. –