【问题标题】:Can't put my Error template outside the error folder无法将我的错误模板放在错误文件夹之外
【发布时间】:2016-01-27 20:48:31
【问题描述】:

我创建了一个标准的 not_found 页面,只要它位于“web/templates/error”文件夹 (not_found.html.eex) 中,它就可以正常工作。 我正在使用(error_view.ex):

  def render("404.html", _assigns) do
    render("not_found.html", %{})
  end

当我尝试将其移动到另一个文件夹(在这种特殊情况下为标准的“web/templates/page”文件夹)时,我收到了"Server internal error" 消息,该消息应该会出现,因为没有匹配的渲染子句或找不到模板.模板在那里,我尝试过使用不同的文件夹。 我在error_view.ex 中使用了这个渲染函数:

def render("404.html", _assigns) do
  render("MyProject.PageView", "not_found.html", %{})
end

这不应该工作吗?

【问题讨论】:

  • 您是否使用"MyProject.PageView" 如果是,那么您使用的是字符串。您应该使用模块名称 (MyProject.PageView)
  • Urrggg!太愚蠢了,因为我正在查看文档 (hexdocs.pm/phoenix/Phoenix.View.html#render/3),但我错过了……非常感谢 Gazler 的帮助。你不想把它变成答案吗?

标签: phoenix-framework


【解决方案1】:

render/3 函数接受 3 个参数。第一个参数应该是调用render 的模块:

def render("404.html", _assigns) do
  render(MyProject.PageView, "not_found.html", %{})
end

您提供了字符串"MyProject.PageView",而不是模块MyProject.PageView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多