Компиляция и запуск приложений Yaws
Appmods - это способ, позволяющий разработчику приложения контролировать путь 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 после компиляции?
Как сгенерировать URL-путь для ссылки на этот appmod?
Вся помощь приветствуется!
1 ответ
Компиляция вашего appmod - это вопрос вызова erlc
компилятор. Затем вы устанавливаете получившийся файл луча в каталог загрузки, известный Yaws, который указан в yaws.conf
файл с использованием ebin_dir
директива:
ebin_dir = /path/to/some/ebin
ebin_dir = /path/to/another/ebin
Вы можете указать свои собственные пути здесь. множественный ebin_dir
настройки накапливаются - все такие пути добавляются в путь загрузки Yaws.
Для активной разработки вашего appmod, с автоматической перезагрузкой ваших изменений, вы можете использовать что-то вроде sync
проект.
URL для вашего appmod также указан в yaws.conf
, в server
блок, используя appmods
директивы. Вы можете найти примеры в документации по Yaws. Например, если вы хотите, чтобы ваш 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 /
за исключением любого пути URL, начинающегося с /icons
:
appmods = </, myappmod exclude_paths icons>