1

我正在查看两个 Webmachine 应用程序中的两个版本 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,看来传递给的值是在. 正如您在此处看到的,配置的最后一个参数is ,它指定了文档根目录。当然,您可以随意标记属性,只要您以相同的方式在.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 回答