1

2つのWebmachineアプリケーションで2つのバージョンstatic_resource:init/1を見ています。

https://github.com/basho/wriaki/blob/master/apps/wriaki/src/session_resource.erl
http://lambder.com/2009/06/providing-static-content-in-webmachine/

どちらの場合も、static_resource:init/1に渡されるパラメーターはDocRootです。しかし、この関数が設定されている場所やDocRootが定義されている場所が見つかりません。

誰かが私に答えを教えてもらえますか?

どうもありがとう、

LRP

4

1 に答える 1

1

ここからwebmachine_demo_fs_resourceを確認しましたが、渡された値はに設定されているようです。ここでわかるように、の構成の最後のパラメーターは、です。これは、ドキュメントルートを指定します。もちろん、で同じように読み上げる限り、プロパティにラベルを付けることができます。init/1dispatch.confwebmachine_demo_fs_resource[{root, "/tmp/fs"}]init/1

これは、デモがどのように機能するかを説明していますが、アプリケーションの観点からは、これが正しいことである場合とそうでない場合があります。環境変数またはブート引数を読み取って、ドキュメントルートがどこにあるべきかを把握したい場合があります。例えば:

init([]) ->
    DocRoot =
        case init:get_argument(doc_root) of
            {ok, [[DR]]} -> DR;
            error -> "/tmp/fs"
        end,
    {ok, #context{root=DocRoot}}.

あなたはあなたが好きなように値を設定することがContextできるので、あなたはあなた自身の冒険を選ぶことができます!

于 2011-08-04T00:39:30.937 に答える