8

我正在运行一个 Spock 服务器并希望提供一些静态内容。我正在使用respondMiddleware“Web.Spock.Action”包中的函数。

签名是:

    respondMiddleware :: Monad m => Middleware -> ActionCtxT ctx m a

我正在使用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 文件,它被放置在 stack 项目的根目录中。我得到的错误是Failed to load resource: the server responded with a status of 400 (Bad Request)

4

1 回答 1

2

正确的方法是使用Web.Spock.Action包中的html函数。

我使用 jinja 模板来参数化我的 html 文件,然后使用该html函数提供它。

import qualified Web.Spock.Action as SA

serveHtml :: JinjaTemplate -> SA.ActionT (LoggingT IO) ()
serveHtml tmplt = SA.html tmplt
于 2018-02-24T20:40:20.737 回答