如何使用 Spock (Haskell) 提供静态内容?
How to serve static content using Spock (Haskell)?
我是 运行 Spock 服务器,想要提供一些静态内容。
我正在使用 "Web.Spock.Action" 包中的 respondMiddleware
函数。
签名是:
respondMiddleware :: Monad m => Middleware -> ActionCtxT ctx m a
我正在使用 "Network.Wai.Middleware.Static" 包
中的 staticPolicy
函数获取此 "Middleware"
staticPolicy :: Policy -> Middleware
并且 "Policy" 使用 "Network.Wai.Middleware.Static" 包中的 addBase
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)
正确的方法是使用 Web.Spock.Action 包中的 html
函数。
我使用了一个使用 ginger 的 jinja 模板来参数化我的 html 文件,然后使用 html
函数提供它。
import qualified Web.Spock.Action as SA
serveHtml :: JinjaTemplate -> SA.ActionT (LoggingT IO) ()
serveHtml tmplt = SA.html tmplt
我是 运行 Spock 服务器,想要提供一些静态内容。
我正在使用 "Web.Spock.Action" 包中的 respondMiddleware
函数。
签名是:
respondMiddleware :: Monad m => Middleware -> ActionCtxT ctx m a
我正在使用 "Network.Wai.Middleware.Static" 包
中的staticPolicy
函数获取此 "Middleware"
staticPolicy :: Policy -> Middleware
并且 "Policy" 使用 "Network.Wai.Middleware.Static" 包中的 addBase
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)
正确的方法是使用 Web.Spock.Action 包中的 html
函数。
我使用了一个使用 ginger 的 jinja 模板来参数化我的 html 文件,然后使用 html
函数提供它。
import qualified Web.Spock.Action as SA
serveHtml :: JinjaTemplate -> SA.ActionT (LoggingT IO) ()
serveHtml tmplt = SA.html tmplt