Phoenix Code_Reloader 是否只重新加载 Elixir 代码?
Does Phoenix Code_Reloader Only Reload Elixir Code?
这是其他人提出的问题的结果。
查看 Phoenix.CodeReloader 的文档,看起来这只是重新加载 Elixir 代码。那是对的吗?如果是这样,phoenix_live_reload 是做什么的?实时重新加载是否也负责重新加载静态页面 and/or JS 资源?
我只想了解这两种设置之间的区别,以及在哪些用例中一种适用于另一种。
Phoenix.CodeReloader
负责重新加载 web
目录中的代码(以及 Phoenix 1.2 的 lib
)。这意味着如果你改变了网络中的某些东西(比如控制器),那么 Elixir 代码将被重新加载并在你的下一个请求中使用。您在 Endpoint
中为 non-elixir 代码指定外部观察者(例如 brunch 或 webpack)。
phoenix_live_reload
项目添加了一个插件,它通过与服务器的 WebSocket 连接将一些 JavaScript 注入您的页面。当您对 live_reload (JavaScript, stylesheets, templates and views by default) 配置中的任何内容进行更改时,页面将重新加载以响应通过 WebSocket 发送的消息。如果更改是对 Elixir 文件的更改,那么它将在重新加载页面时重新编译和提供服务。如果它是 JavaScript 或 CSS 那么它将由观察者处理(默认为早午餐。)
这是其他人提出的问题的结果。
查看 Phoenix.CodeReloader 的文档,看起来这只是重新加载 Elixir 代码。那是对的吗?如果是这样,phoenix_live_reload 是做什么的?实时重新加载是否也负责重新加载静态页面 and/or JS 资源?
我只想了解这两种设置之间的区别,以及在哪些用例中一种适用于另一种。
Phoenix.CodeReloader
负责重新加载 web
目录中的代码(以及 Phoenix 1.2 的 lib
)。这意味着如果你改变了网络中的某些东西(比如控制器),那么 Elixir 代码将被重新加载并在你的下一个请求中使用。您在 Endpoint
中为 non-elixir 代码指定外部观察者(例如 brunch 或 webpack)。
phoenix_live_reload
项目添加了一个插件,它通过与服务器的 WebSocket 连接将一些 JavaScript 注入您的页面。当您对 live_reload (JavaScript, stylesheets, templates and views by default) 配置中的任何内容进行更改时,页面将重新加载以响应通过 WebSocket 发送的消息。如果更改是对 Elixir 文件的更改,那么它将在重新加载页面时重新编译和提供服务。如果它是 JavaScript 或 CSS 那么它将由观察者处理(默认为早午餐。)