Tôi đang chạy một máy chủ Spock và muốn phục vụ một số nội dung tĩnh. Tôi đang sử dụng chức năng respondMiddleware
từ gói "Web.Spock.Action".Làm cách nào để phân phát nội dung tĩnh bằng Spock (Haskell)?
Chữ ký là:
respondMiddleware :: Monad m => Middleware -> ActionCtxT ctx m a
Tôi nhận này "Middleware" bằng cách sử dụng chức năng staticPolicy
từ "Network.Wai.Middleware.Static" gói
staticPolicy :: Policy -> Middleware
Và "Chính sách" sử dụng addBase
từ gói "Network.Wai.Middleware.Static"
addBase :: String -> Policy
Dưới đây là codeblock tôi:
get ("/") $
respondMiddleware $ staticPolicy $ addBase ("static")
Các static
có index.html
và các tập tin JS và CSS liên quan và nó được đặt trong thư mục gốc của ngăn xếp dự án. Lỗi tôi nhận được là Failed to load resource: the server responded with a status of 400 (Bad Request)
Đã lâu rồi kể từ khi tôi sử dụng Spock, điều này có thể sai: Đường dẫn '"/"' trong RouteSpec của bạn không có ký tự đại diện, vì vậy tôi nghĩ rằng sẽ chỉ khớp * chính xác * '/'. Tôi nghi ngờ những gì bạn muốn là 'middleware $ staticPolicy $ addBase" static "'. –