Obecnie eksperymentuję z Yesod, wykonując polecenie tutorial on the Yesod Wiki.Łącze do pliku statycznego z Hamleta
Najpierw stworzył aplikację jesod korzystając yesod init
i stworzył obsługi korzeń, który renderuje plik widget o nazwie homepage
:
getRootR = do
mu <- maybeAuth
defaultLayout $ do
h2id <- lift newIdent
setTitle "Home"
addWidget $(widgetFile "homepage")
Mam plik obrazu w statycznej rozmowy katalogu static/img/logo.png
Po dotknięciu Settings/staticFiles.hs
, Udało mi się połączyć ten plik od default-layout.hamlet
przez
<img [email protected]{StaticR img_logo_png}
Problem występuje teraz, gdy chcę dołączyć ten plik statyczny do mojego widżetu homepage
, używając dokładnie tego samego wiersza kodu. Następujący błąd występuje w kompilacji:
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"))
Więc moje pytanie brzmi: w jaki sposób mogę połączyć zasoby statyczne w określonych widgetów z widgetFile
, i dlaczego zachowują się inaczej w szablonie domyślny układ?