Attualmente sto sperimentando Yesod seguendo lo tutorial on the Yesod Wiki.Collegamento a un file statico di Hamlet
Per prima cosa ho creato un'applicazione yesod utilizzando yesod init
, e ha creato un gestore di Root che rende un file widget di chiamata homepage
:
getRootR = do
mu <- maybeAuth
defaultLayout $ do
h2id <- lift newIdent
setTitle "Home"
addWidget $(widgetFile "homepage")
Ho un file immagine nella directory chiamata statica static/img/logo.png
Dopo aver toccato Settings/staticFiles.hs
, sono riuscito con successo a collegare questo file da default-layout.hamlet
via
<img [email protected]{StaticR img_logo_png}
Il problema si verifica ora che voglio includere questo file statico nel mio widget homepage
, utilizzando esattamente la stessa riga di codice. Il seguente errore si verifica in compilazione:
Handler/Root.hs:19:21:
Not in scope: `img_logo_png'
In the result of the splice:
$(widgetFile "homepage")
To see what the splice expanded to, use -ddump-splices
In the first argument of `addWidget', namely
`$(widgetFile "homepage")'
In the expression: addWidget ($(widgetFile "homepage"))
Quindi la mia domanda è: Come faccio a collegare risorse statiche nei widget definiti con widgetFile
, e perché si comportano in modo diverso nel modello di layout di default?