Appmod是让应用程序程序员控制URL路径的一种方法。它们被实现为Erlang模块。例如myappmod.erl
-module(myappmod).
-include("../../yaws_api.hrl").
-compile(export_all).
out(Arg) ->
Method = (Arg#arg.req)#http_request.method,
handle(Method, Arg).
handle(Method,Arg) ->
%% Do something
ok.
我应该如何进行编译以使这个appmod易于管理?
我应该在yaws目录树的哪个目录中保存myappmod.erl以及myappmod.beam在编译后的位置?
如何生成引用此appmod的URL路径?
欢迎所有帮助!
答案 0 :(得分:3)
编辑appmod是调用erlc
compiler的问题。然后,将生成的梁文件安装到Yaws已知的加载目录中,该目录使用yaws.conf
指令在ebin_dir
文件中指定:
ebin_dir = /path/to/some/ebin
ebin_dir = /path/to/another/ebin
您可以在此处指定自己的路径。多个ebin_dir
设置是累积的 - 所有此类路径都会添加到Yaws加载路径中。
要积极开发您的appmod,并自动重新加载更改,您可以使用the sync
project之类的内容。
您的appmod的网址也在yaws.conf
中的server
块中使用appmods
指令指定。您可以在Yaws documentation中找到示例。例如,如果您希望appmod控制服务器的整个URL空间,请指定/
作为其URL路径:
<server foo>
port = 8001
listen = 0.0.0.0
docroot = /filesystem/path/to/www
appmods = </, myappmod>
</server>
还要注意可以在exclude_paths
设置中指定的可选appmods
指令,通常用于排除存储静态加载资源的路径。例如,以下设置表示myappmod
处理整个网址空间/
,但以/icons
开头的任何网址路径除外:
appmods = </, myappmod exclude_paths icons>