J'expérimente actuellement avec Yesod en suivant le tutorial on the Yesod Wiki.Lien vers un fichier statique de Hamlet
D'abord, je créé une application yessod utilisant yesod init
, et a créé un gestionnaire de racine qui rend un fichier widget appelé homepage
:
getRootR = do
mu <- maybeAuth
defaultLayout $ do
h2id <- lift newIdent
setTitle "Home"
addWidget $(widgetFile "homepage")
J'ai un fichier d'image dans l'appel répertoire statique static/img/logo.png
Après avoir touché Settings/staticFiles.hs
, j'ai réussi à lier ce fichier de default-layout.hamlet
via
<img [email protected]{StaticR img_logo_png}
Le problème se produit maintenant que je veux inclure ce fichier statique dans mon widget homepage
, en utilisant exactement la même ligne de code. L'erreur suivante se produit à la compilation:
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"))
Donc, ma question est la suivante: Comment lier les ressources statiques dans les widgets définis avec widgetFile
, et pourquoi est-il se comporter différemment dans le modèle de mise en page par défaut?