从Phoenix 1.1.6升级到1.2,现在我得到一个CompileError

时间:2016-06-24 19:08:38

标签: elixir phoenix-framework

我将Phoenix从1.1.6升级到1.2,现在我得到了这个奇怪的CompileError。

(CompileError) web/views/main_view.ex:2: module Rejack.Router.Helpers is not loaded and could not be found

我将一个新生成的Phoenix 1.2项目文件与我的文件进行了比较,我找不到任何重大差异。

我的view web.ex部分如下所示:

def view do
  quote do
    require Logger

    use Phoenix.View, root: "web/templates"

    # Import convenience functions from controllers
    import Phoenix.Controller, only: [get_csrf_token: 0, get_flash: 2, view_module: 1]

    # Use all HTML functionality (forms, tags, etc)
    use Phoenix.HTML

    import Rejack.Router.Helpers
    import Rejack.ErrorHelpers
    import Rejack.Gettext
  end
end

并且视图也很标准

defmodule Rejack.MainView do
  use Rejack.Web, :view
end

知道造成这种情况的原因是什么?

修改 常规凤凰项目唯一的主要区别是我没有使用postgrex,而是mongodb_ecto(因此我坚持使用phoenix_ecto 2.x)。

1 个答案:

答案 0 :(得分:1)

这可以归结为使用" forward"作为一个捕获所有路由指向控制器而不是插件。

forward "/", PageController, :index

如果您在路线中确实有这种情况,并将其更改为使用get" / * path"相反,那应该为你修复编译错误。

get "/*path", PageController, :index