这是由于其他人问的问题而出现的。
查看Phoenix.CodeReloader的文档,看起来这只是重新加载Elixir代码。那是对的吗?如果是这样,phoenix_live_reload会做什么? live reload是否也负责重新加载静态页面和/或JS资源?
我只想了解两种设置之间的区别,以及使用一种情况与使用另一种情况相比的用例。
答案 0 :(得分:11)
Phoenix.CodeReloader
负责重新加载web
目录中的代码(以及Phoenix 1.2中的lib
)。这意味着如果您在Web中更改某些内容(例如控制器),则会重新加载Elixir代码并在下次请求时使用。您可以在Endpoint
中为非elixir代码指定外部观察者(例如早午餐或网络包)。
phoenix_live_reload
项目添加了一个插件,它通过与服务器的WebSocket连接将一些JavaScript注入到您的页面中。当您在配置中对live_reload(JavaScript, stylesheets, templates and views by default)进行任何更改时,将重新加载该页面以响应通过WebSocket发送的消息。如果更改为Elixir文件,则重新加载页面时将重新编译并提供服务。如果它是JavaScript或CSS,那么它将由观察者处理(默认情况下是早午餐。)