私は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を追加しなければならないでしょう。これは残酷なように思えますが、これは私が使用する唯一の機能だと考えています。 –