Компиляция и запуск приложений 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>
Другие вопросы по тегам