erlang webmachine没有阅读dispatch.conf

时间:2014-07-23 19:31:21

标签: erlang mochiweb webmachine

我正在处理有关webmachine http://en.wikiversity.org/wiki/Web_Development_with_Webmachine_for_Erlang的在线教程。我从github下载了源代码,使用

创建了一个新的应用程序
/webmachine/scripts/new_webmachine.sh prp

然后使用make来构建它并使用标准的启动脚本启动它。骨架应用程序运行正常,您可以看到主页,但/ priv目录中没有dispatch.conf文件,即使我添加一个它似乎没有拿起它 - 在启动日志中我可以看到是一个(默认?)调度设置,但添加和更改dispatch.conf不会改变它。

=PROGRESS REPORT==== 23-Jul-2014::20:03:32 ===
          supervisor: {local,prp_sup}
             started: [{pid,<0.81.0>},
                       {name,webmachine_mochiweb},
                       {mfargs,
                           {webmachine_mochiweb,start,
                               [[{ip,"0.0.0.0"},
                                 {port,8080},
                                 {log_dir,"priv/log"},
                                 {dispatch,[{[],prp_resource,[]}]}]]}},
                       {restart_type,permanent},
                       {shutdown,5000},
                       {child_type,worker}]

我环顾四周看看配置是否已经以某种方式移动,但源代码附带的文档似乎表明/priv/dispatch.conf是正确的。我很难过 - 任何帮助都会被感激地接受。

谢谢,

1 个答案:

答案 0 :(得分:3)

您关注的示例不正确。使用new_webmachine.sh创建webmachine应用时,路由的配置不会存储在priv/dispatch.conf中,而是在src/prp_config.erl中创建。

要使其使用dispatch.conf,您需要将prp_config:dispatch/0更改为:

-spec dispatch() -> [webmachine_dispatcher:route()].
dispatch() ->
    {ok, Routes} = file:consult("priv/dispatch.conf"),
    Routes.

然后将priv/dispatch.conf添加为:

{[], prp_resource, []}.