Как обслуживать статический контент, используя Spock (Haskell)?
Я использую сервер Spock и хочу обслуживать некоторый статический контент. я использую respondMiddleware
функция из пакета "Web.Spock.Action".
Подпись:
respondMiddleware :: Monad m => Middleware -> ActionCtxT ctx m a
Я получаю это "Middleware", используя staticPolicy
функция из пакета "Network.Wai.Middleware.Static"
staticPolicy :: Policy -> Middleware
И "Политика" с помощью addBase
из пакета "Network.Wai.Middleware.Static"
addBase :: String -> Policy
Вот мой кодовый блок:
get ("/") $
respondMiddleware $ staticPolicy $ addBase ("static")
static
имеет index.html
и связанные файлы JS и CSS, и он помещается в корневой каталог стекового проекта. Я получаю ошибку Failed to load resource: the server responded with a status of 400 (Bad Request)
1 ответ
Правильный способ сделать это - использовать html
функция из пакета Web.Spock.Action.
Я использовал шаблоны jinja с помощью ginger для параметризации моего html-файла, а затем подал его с помощью html
функция.
import qualified Web.Spock.Action as SA
serveHtml :: JinjaTemplate -> SA.ActionT (LoggingT IO) ()
serveHtml tmplt = SA.html tmplt