Phoenix Live Reload间歇性地工作

时间:2017-07-21 14:02:21

标签: emacs elixir phoenix-framework livereload spacemacs

我想弄清楚为什么菲尼克斯大部分时间都会重新加载,但并非总是如此。

我的config.exs有:

# Watch static and templates for browser reloading.
config :bespoke_work, BespokeWork.Web.Endpoint,
  live_reload: [
    patterns: [
      ~r{priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$},
      ~r{priv/gettext/.*(po)$},
      ~r{lib/bespoke_work/web/views/.*(ex)$},
      ~r{lib/bespoke_work/web/templates/.*(eex)$}
    ]
  ]

每当我编辑其中一个以*.html.eex结尾的模板时,它通常会立即生效。但有时却没有。当实时重新加载不起作用时,无论我尝试刷新页面/清除缓存或跳萨尔萨舞多少次,它都不会刷新内容。

我的文件夹结构如下:

/name/lib/name/web/templates/page |-index.html.eex |-menu.html.eex |-module[1-5].html.eex

(有五个模块文件,第一个是module1.html.eex等等)

文件是不是直接在templates文件夹下的问题? (它们位于templates/page文件夹中)

index.htmllayout/app.html.eex布局中呈现,并且在index文件内,有调用呈现menu和其他模块。

不确定我在这里缺少什么。

我尝试手动运行mix phx.digest,它没有任何区别(它已经在需要时被触发)。

如何解决此问题?

Phoenix 1.3.0-rc.2

Phoenix Live Reload 1.0.8

Elixir 1.4.5

Erlang / OTP 20

Impaciência10

1 个答案:

答案 0 :(得分:0)

我找到了罪魁祸首:Spacemacs lock files

由于我的工作流程的一部分是使用前端规格,有时我需要按像素调整内容或进行其他一些小调整(并且非常快速):就像你注意到你有一个错字或什么的。

在这些情况下,似乎会发生以下情况:

  1. 我切换到Spacemacs。
  2. 一旦我开始输入(切换到邪恶模式插入状态),Spacemacs就会在同一目录中创建一个锁定文件。
  3. Phoenix Live Reload注意到目录中的更改,并且实时重新加载代码(由于应用程序未使用自动保存文件,因此仍然相同)。
  4. 当我保存更改的文件时,通常是立即生效,Live Reload仍然会从检测到的自动保存文件创建中刷新浏览器。
  5. 虽然我仍然无法理解为什么只是刷新屏幕(在Chrome上禁用浏览器缓存)不会显示正确的代码。