【发布时间】:2017-06-06 10:48:51
【问题描述】:
我正在探索 Yaws,我已经阅读了 Yaws 手册和使用 Erlang 构建 Web 应用程序一书。我已经按照本书最后一章中构建multi_cast 应用程序的每一步,但我无法运行它。我相信是 Erlang 代码没有被发现或使用。
我的主目录中有一个项目目录,我已将 Yaws docroot 指向此特定虚拟服务器的项目目录,其中包含 .yaws 文件的 htdocs 目录。
<server localhost>
port = 8001
listen = 127.0.0.1
docroot = <my_path_here>/erlang_yaws/multi_cast
</server>
我已将ebin_dir 更改为也指向项目的ebin 目录:
ebin_dir = <my_path_here>/erlang_yaws/multi_cast/_build/default/lib/multi_cast/ebin
在使用 yaws -i 启动 Yaws 时,我可以转到一些简单的 .yaws 文件,这些文件不依赖于项目的任何 .beam 文件。但是,当我将浏览器的位置更改为依赖于应用程序编译文件的 .yaws 文件时,我收到以下错误:
=ERROR REPORT==== 21-Jan-2017::14:27:17 ===
ERROR erlang code threw an uncaught exception:
File: <my_path_here>/erlang_yaws/multi_cast/htdocs/status.yaws:1
Class: exit
Exception: {noproc,{gen_server,call,[multi_cast_front,{get_etag}]}}
Req: {http_request,'GET',{abs_path,"/htdocs/status.yaws"},{1,1}}
Stack: [{gen_server,call,2,[{file,"gen_server.erl"},{line,204}]},
{m_27449121_1,out,1,
[{file,"<my_path_here>/.yaws/yaws/default/m_27449121_1.erl"},
{line,35}]},
{yaws_server,deliver_dyn_part,8,
[{file,"yaws_server.erl"},{line,2872}]},
{yaws_server,aloop,4,[{file,"yaws_server.erl"},{line,1242}]},
{yaws_server,acceptor0,2,[{file,"yaws_server.erl"},{line,1065}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]
我认为这是因为我的 gen_server 应用程序未正确启动或找不到?源代码好像编译成功了。
我在 MacOS Sierra 上使用 Yaws 2.0.4、Erlang 19,我使用 homebrew 进行了常规 Yaws 安装。
另外,是否有资源可以彻底解释如何构建 Yaws 和一个简单的应用程序?阅读手册和书籍都无法解释这一点(或者我真的很厚),从用户体验的角度卡住是非常令人沮丧的。
【问题讨论】: