4

snapを使用するHakyllを使用して、ルーティングサーバーで作業を開始しました。チュートリアルの次のコードを指定すると、ルーティングを確認できますが、oneapp.mysite.com などの独自のサブドメインにいくつかの異なるアプリケーションを配置したいと考えています。これは、スナップまたは他の Haskell サーバーを使用して可能ですか?

site :: Snap ()
site =
    ifTop (writeBS "hello world") <|>
    route [ ("foo", writeBS "bar")
          , ("echo/:echoparam", echoHandler)
          ] <|>
    dir "static" (serveDirectory ".")
4

2 に答える 2

1

私は前にこれをやったことがありませんが、これは私が試みることです:

関数を使用wrapSiteしてサブドメインのルートを条件付きで使用すると、どのサブドメインが要求されたかをテストできますfmap rqServerName getRequest

http://hackage.haskell.org/packages/archive/snap/0.11.0/doc/html/Snap-Snaplet.html#g:7 http://hackage.haskell.org/packages/archive/snap-core /0.9.2.2/doc/html/Snap-Core.html#g:5 http://hackage.haskell.org/packages/archive/snap-core/0.9.2.2/doc/html/Snap-Core.html# g:10

于 2013-02-06T01:16:55.223 に答える
0

両方の提案に感謝します、私はそれを作りました。私はスナップレットを使用しませんでしたがfmap rqServerName getRequestif-then-elseステートメントを使用しました。これはコードの一部です。

skite :: Snap ()
skite = do
    req <- fmap rqServerName getRequest
    routes req
  where
    routes req =
        if (req == "www.site1.ro") then (site1) else pass <|>
        if (req == "site1.ro") then (site1) else pass <|>
        if (req == "www.site2.ro") then (writeBS req) else pass <|>
        if (req == "site2.ro") then (writeBS "Nowhere to be found") else pass <|>
        ifTop (writeBS req)

また、ここに完全なコードを含む要旨を作成しました 。さらに提案が必要な場合は、大歓迎です。

于 2013-02-22T08:11:33.277 に答える