gpt4 book ai didi

erlang - 如何更改 Yaws appmods 文件?

转载 作者:行者123 更新时间:2023-12-02 00:11:25 26 4
gpt4 key购买 nike

我正在尝试管理 Yast appmod。所以:
雅司病.conf:

<server localhost>
port = 8005
listen = 127.0.0.1
docroot = /home/ziel/www/CatsScript/src/
appmods = </, myappmod>
</server>

来自 http://yaws.hyber.org/appmods.yaws myappmod.erl:

-module(myappmod2).
-author('klacke@bluetail.com').

-include("/home/ziel/erlang/yaws/include/yaws_api.hrl").
-compile(export_all).

box(Str) ->
{'div',[{class,"box"}],
{pre,[],Str}}.

out(A) ->
{ehtml,
[{p,[],
box(io_lib:format("A#arg.appmoddata = ~p~n"
"A#arg.appmod_prepath = ~p~n"
"A#arg.querydata = ~p~n",
[A#arg.appmoddata,
A#arg.appmod_prepath,
A#arg.querydata]))}]}.

当我第一次使用它时它就起作用了。但后来当我更改 myappmod.erl 中的某些内容时,服务器的响应没有任何变化。我删除了 myappmod.erl,但它仍然有效。我应该做什么来做出一些改变?

最佳答案

当您启动 Yaws 时,它最终会引用您的 myappmod2 模块,从而导致 Erlang 运行时加载通过编译该模块生成的 Beam 文件。一旦加载,它就会保持加载状态,直到您强制重新加载它,例如通过交互式 Erlang shell,或者通过停止并重新启动 Yaws 和 Erlang 运行时。简单地从外部重新编译模块不会重新加载它。

如果您通过 yaws -i 交互运行 Yaws,您可以在启动后按“Enter”键以获得交互式 Erlang shell。如果您更改了 appmod 模块并重新编译它,请确保将新的 Beam 文件复制到旧的 Beam 文件上,然后只需在交互式 shell 中键入 l(myappmod2). ,然后按 Enter 重新加载 myappmod2 模块(不要忘记右括号后面的句点)。小写的 lErlang shell's load command 。您还可以使用 c(myappmod2). 命令直接在 shell 中编译模块,该命令将编译并加载它(假设没有编译错误)。

如果您的 Yaws 以非交互方式运行,例如作为常规后台守护进程,您可以通过运行以下命令将模块重新加载到其中:

yaws --load myappmod2

如果您想一次加载所有模块,可以在 --load 选项后面放置多个模块名称。如果您的 Yaws 实例具有特定 ID,请确保您还使用适当的 --id 选项来识别它。

如果您对自动重新加载重新编译的模块感兴趣,您可能会研究类似 reloader.erl 的内容。 module,它监视重新编译的模块并自动加载它们。我不推荐将其用于生产用途,但它对于开发来说非常方便。

关于erlang - 如何更改 Yaws appmods 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11311832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com