我正在探索Yaws,並且我已閱讀Yaws手冊和使用Erlang書籍構建Web應用程序。我已經按照本書最後一章中的步驟構建了一個multi_cast
應用程序,但我無法運行它。我相信這是沒有被發現或使用的Erlang代碼。在Yaws中運行Erlang代碼和項目(ebin_dir)
我有一個項目目錄在我的主目錄中,並且我已將Yaws docroot
指定給我的項目目錄,其中htdocs
目錄與.yaws
文件駐留在此目錄中。
<server localhost>
port = 8001
listen = 127.0.0.1
docroot = <my_path_here>/erlang_yaws/multi_cast
</server>
,我已經改變了ebin_dir
也指向project's ebin
目錄:
ebin_dir = <my_path_here>/erlang_yaws/multi_cast/_build/default/lib/multi_cast/ebin
在與yaws -i
開始雅司病我可以去一些簡單的.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和我做了一個正常的Yaws安裝與homebrew
。
另外,是否有一個資源,徹底解釋如何構建Yaws和一個簡單的應用程序?閱讀手冊和本書都無法解釋這個問題(或者我真的很厚),從用戶體驗的角度來看,這很讓人沮喪。