4

Appmod は、アプリケーション プログラマーが URL パスを制御できるようにする方法です。これらは Erlang モジュールとして実装されています。たとえば、myappmod.erl

-module(myappmod).
-include("../../yaws_api.hrl").
-compile(export_all).

out(Arg) ->
    Method = (Arg#arg.req)#http_request.method,
    handle(Method, Arg).

handle(Method,Arg) ->
    %%  Do something 
    ok.

この appmod を簡単に管理できるようにするには、どのようにコンパイルを実行すればよいですか?

yaws ディレクトリ ツリーのどのディレクトリに myappmod.erl を保存する必要がありますか? また、コンパイル後に myappmod.beam はどこに保存されますか?

この appmod を参照する URL パスを生成するにはどうすればよいですか?

すべての助けを歓迎します!

4

1 に答える 1

4

appmod をコンパイルするには、erlcコンパイラを呼び出すだけです。次に、生成されたビーム ファイルを、次のディレクティブyaws.confを使用してファイルで指定されている、Yaws が認識しているロード ディレクトリにインストールします。ebin_dir

ebin_dir = /path/to/some/ebin
ebin_dir = /path/to/another/ebin

ここで独自のパスを指定できます。複数ebin_dirの設定は累積されます — そのようなパスはすべて Yaws ロード パスに追加されます。

変更を自動的にリロードして appmod を積極的に開発するにはsyncprojectのようなものを使用できます。

appmod の URL も、ディレクティブを使用してyaws.confserverブロック内で指定されます。Yawsappmodsのドキュメントで例を見つけることができます。たとえば、appmod でサーバーの URL 空間全体を制御する場合は、その URL パスとして次のように指定します。/

<server foo>
    port = 8001
    listen = 0.0.0.0
    docroot = /filesystem/path/to/www
    appmods = </, myappmod>
</server>

exclude_paths設定で指定できるオプションのディレクティブにも注意してくださいappmods。通常、静的にロードされたリソースを格納するパスを除外するために使用されます。たとえば、次の設定は、がで始まる URL パスを除くmyappmodURL スペース全体を処理することを意味します。//icons

appmods = </, myappmod exclude_paths icons>
于 2015-10-15T16:44:30.073 に答える