Webmachine:谁设置了static_resource:init/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是定义的。

谁能给我指出一个答案吗?许多谢谢,

单体

我从这里查看了webmachine_demo_fs_resource,似乎传递给init/1的值是在dispatch.conf中设置的。正如您在这里看到的,webmachine_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值设置为您喜欢的任何值,因此您可以选择自己的冒险!

相关内容

  • 没有找到相关文章

最新更新