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易于管理?
我应将myappmod.erl保存在yaws目录树的哪个目录中,并且编译后myappmod.beam放在哪里?
如何生成引用此appmod的URL路径?
欢迎所有帮助!
最佳答案
编译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之类的东西。还使用
yaws.conf
指令在server
块的appmods
中指定了appmod的URL。您可以在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
处理整个URL空间/
,但以/icons
开头的任何URL路径除外:appmods = </, myappmod exclude_paths icons>