Ich verwende einen Spock-Server und möchte einige statische Inhalte bereitstellen. Ich verwende respondMiddleware
Funktion aus dem "Web.Spock.Action" -Paket.Wie statische Inhalte mit Spock (Haskell) zu bedienen?
Die Signatur ist:
respondMiddleware :: Monad m => Middleware -> ActionCtxT ctx m a
Ich erhalte diese "Middleware" mit der staticPolicy
Funktion von "Network.Wai.Middleware.Static" -Paket
staticPolicy :: Policy -> Middleware
und der "Policy" mit addBase
von "Network.Wai.Middleware.Static" -Paket
addBase :: String -> Policy
Hier ist mein Codeblock:
get ("/") $
respondMiddleware $ staticPolicy $ addBase ("static")
Die static
hat eine index.html
und die damit verbundenen JS und CSS-Dateien und wird im Stammverzeichnis des Stapels Projekt gelegt. Der Fehler, den ich bekomme, ist
Es ist schon eine Weile her, seit ich Spock verwendet habe, so kann dies falsch sein: Der Pfad '„/“' in Ihrem RouteSpec kein Wildcard hat, so denke ich, dass nur passen * genau * '/'. Ich vermute, was Sie wollen, ist 'Middleware $ staticPolicy $ addBase" static "'. –