Ris*_*hal 8 haskell static-content server haskell-stack haskell-spock
我正在运行Spock服务器并希望提供一些静态内容.我正在使用respondMiddleware"Web.Spock.Action"包中的函数.
签名是:
respondMiddleware :: Monad m => Middleware -> ActionCtxT ctx m a
Run Code Online (Sandbox Code Playgroud)
我使用staticPolicy"Network.Wai.Middleware.Static"软件包中的函数获取此"中间件"
staticPolicy :: Policy -> Middleware
Run Code Online (Sandbox Code Playgroud)
而"政策"则使用addBase来自"Network.Wai.Middleware.Static"的包
addBase :: String -> Policy
Run Code Online (Sandbox Code Playgroud)
这是我的代码块:
get ("/") $
respondMiddleware $ staticPolicy $ addBase ("static")
Run Code Online (Sandbox Code Playgroud)
该static有一个index.html和相关的JS和CSS文件,并将其放置在堆栈项目的根目录.我得到的错误是Failed to load resource: the server responded with a status of 400 (Bad Request)
正确的方法是使用Web.Spock.Actionhtml包中的函数。
我使用了 jinja 模板,使用姜来参数化我的 html 文件,然后使用该html函数提供它。
import qualified Web.Spock.Action as SA
serveHtml :: JinjaTemplate -> SA.ActionT (LoggingT IO) ()
serveHtml tmplt = SA.html tmplt
Run Code Online (Sandbox Code Playgroud)