Elixir “无法呈现”;app.html“;对于X.Web.LayoutView,请为render/2定义匹配子句

Elixir “无法呈现”;app.html“;对于X.Web.LayoutView,请为render/2定义匹配子句,elixir,phoenix-framework,Elixir,Phoenix Framework,将我的应用程序从Livestory重命名为Citybuilder后,我无法启动它 mix phx.server返回: Could not render "app.html" for Citybuilder.Web.LayoutView, please define a matching clause for render/2 or define a template at "lib/Citybuilder/web/templates/layout". No templates were comp

将我的应用程序从Livestory重命名为Citybuilder后,我无法启动它

mix phx.server
返回:

Could not render "app.html" for Citybuilder.Web.LayoutView, please define a matching clause for render/2 or define a template at "lib/Citybuilder/web/templates/layout". No templates were compiled for this module.
我已经检查过了,app.html.eex在文件结构中,应该在那里

错误可能在于文件结构或单词的大小写

我重新打开了应用程序

  • 是否将区分大小写的livestory替换为citybuilder
  • 另一个区分大小写的Livestory替换为Citybuilder
然后我换了衣服

lib/livestory/web/templates/layout

lib/citybuilder/web/templates/layout


应用程序运行正常。

你说的“将我的应用程序从Livestory重命名为Citybuilder”是什么意思?您是否重命名了所有模块?也许删除整个
\u build
目录并重新编译会有所帮助?否则,您需要检查您的
lib/Citybuilder/web/views
查看
*视图
模块,检查
lib/Citybuilder/web/web.ex
以将所有出现的
Livestory
更新到
Citybuilder
,最后,在
lib/Citybuilder/web/endpoint.ex
中非常类似的内容。谢谢,我会浏览这个列表。是的,我重命名了所有模块。我在代码中查找并替换了Livestory的每个实例,并将其与Citybuilder交换。正如预期的那样,它导致了问题。我感觉您需要检查您的
lib/Citybuilder/web/web.ex
在第30行附近,应该有类似
use Phoenix.View的内容,root:“lib/Livestory/web/templates”
,但您也想更新它。我刚刚经历了非常相似的过程,这是一个问题!让我知道这是否有效,以便我可以将其作为最终答案发布!我刚刚检查过,Livestory在批量重命名中成功地更改为Citybuilder:第33行:“lib/Citybuilder/web/templates”。。。我现在需要深入研究文件结构和大小写。你在哪里调用render?可以直接调用render来测试它吗
Phoenix.View.render(Your.View,“Your_template.html,assigns)