Erlang 如何更改Yaws-appmods文件?

Erlang 如何更改Yaws-appmods文件?,erlang,yaws,Erlang,Yaws,我正在尝试管理Yast appmod。所以: yaws.conf: <server localhost> port = 8005 listen = 127.0.0.1 docroot = /home/ziel/www/CatsScript/src/ appmods = </, myappmod> </server> 当我第一次使用它时,它就起作用了。但后来,当我在myappmod.erl中更改某些内容时,服务器的响应没有任何更改。然

我正在尝试管理Yast appmod。所以:
yaws.conf:

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

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

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

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

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

yaws --load myappmod2
如果要同时加载多个模块名,可以在
--load
选项后放置多个模块名。如果您的Yaws实例具有特定的id,请确保您还使用适当的
--id
选项来标识它


如果您对自动重新加载重新编译的模块感兴趣,您可以研究类似模块的东西,它监视重新编译的模块并自动加载它们。我不建议将其用于生产,但它可以方便地用于开发。

您重新编译了.erl文件吗?AppMod是普通的erlang模块,因此必须对其进行编译以反映更改。
yaws --load myappmod2