これは非常に簡単な質問です。複数のホストを同時に処理できるYesodアプリケーションを実行するにはどうすればよいですか?ホスト名に依存しないYesodアプリケーション
デフォルトのYesodセットアップでは、任意のホストからの着信接続を処理できますが、すべてのURLはapproot
の先頭に表示されます。 Yesodインスタンス宣言のjoinPath
をオーバーライドすることは、現在のドメインを格納してその関数が利用できるようにする方法があれば可能ですが、そうではありません。
this wiki pageに記載されている方法はうまく機能しますが、経路にはdomain
というパラメータを追加する必要があります(これには、一致するドメインの静的なセットがないため)。実際には(私は多くのルートを持っているため、その中にはドメインに依存しないものがあります)、ルートをそのまま残しておくという方が良いでしょう.WAIリクエスト情報からホスト名を取得することは可能ですハンドラ関数
絶対URL(例:メール、RSS、XML API)を必要とするものを使用するので、approot _ = ""
はオプションではありません。
私は、コンパイル時にサポートが必要なホスト名をすべて知っているわけではありません。
したがって、approot
変数ではなく、着信要求のホスト名を使用するようにURLをレンダリングするにはどうすればよいですか。
私は議論を、次のされ、その溶液は、レポになったら(他のユーザーのために)この回答への更新をお願い申し上げます。ありがとう! – dflemstr