我将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)。
答案 0 :(得分:1)
这可以归结为使用" forward"作为一个捕获所有路由指向控制器而不是插件。
forward "/", PageController, :index
如果您在路线中确实有这种情况,并将其更改为使用get" / * path"相反,那应该为你修复编译错误。
get "/*path", PageController, :index